SceneDelegate 和 AppDelegate 之间的区别

2024-04-28

在我的 SwiftUI 项目中我看到AppDelegate文件以及SceneDelegate file.

它们之间有什么区别?

例如在方法之间SceneDelegate

scene(_:willConnectTo:options:)

并在AppDelegate

application(_:didFinishLaunchingWithOptions:)

这两个文件旨在根据运行整个应用程序所需的内容和支持在后台明显运行的一个“实例”所需的内容来划分工作。这类似于配置数据库一次,但通过窗口显示不同的值集。

您可以将它们视为全局版本和私有版本。一种是共享的,另一种仅限于个人所有者。在某种程度上,它们正是您所期望的名字。

多窗口支持正在发生

下次创建新的 Xcode 项目时,您将看到 AppDelegate 分为两部分:AppDelegate.swift 和 SceneDelegate.swift。这是一个 iPadOS 推出的新多窗口支持的结果,以及 有效地将应用程序委托的工作一分为二。

从 iOS 13 开始,您的应用程序委托应该:

  1. 设置应用程序运行期间所需的任何数据。
  2. 响应与应用程序相关的任何事件,例如与您共享的文件。
  3. 注册外部服务,例如推送通知。
  4. 配置您的初始场景。

相比之下,场景代表负责处理您的一个实例 应用程序的用户界面。因此,如果用户创建了两个显示 在您的应用程序中,您有两个场景,两者都由同一个应用程序委托支持。

请记住,这些场景设计为独立工作 彼此。因此,您的应用程序不再移至后台, 相反,单个场景会这样做——用户可能会将一个场景移动到 背景,同时保持另一个打开。

致谢https://www.hackingwithswift.com/articles/193/whats-new-in-ios-13 https://www.hackingwithswift.com/articles/193/whats-new-in-ios-13

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SceneDelegate 和 AppDelegate 之间的区别 的相关文章

  • SwiftUI - 取决于多个条件

    SwiftUI 中是否可以依赖多个条件 例如显示一个工作表 sheet isPresented stateA stateB content this is not working 或者已知有不同的方法 我只能带你去看门 c 墨菲斯 今天是运
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • iphone:通过代码获取目标设置中的用户定义变量?

    我的项目有多个目标 每个目标都有自己的目标Class用于设置内容的文件 我想存储它Class目标设置中的名称 Info plist或目标的建筑物设置 这样我就可以根据此设置定义每个目标中需要使用哪个类 根据这个问题 https stacko
  • macOS 应用程序中还需要 Swift 的嵌入式 dylib吗?

    Swift 5 发行说明说 对于运行 iOS 12 2 watchOS 5 2 和 tvOS 12 2 的设备 Swift 应用程序不再在构建变体中包含 Swift 标准库和 Swift SDK 覆盖的动态链接库 但在同一上下文中没有提及
  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • Firebase 连接管理器应仅返回一个结果

    我正在关注位于以下位置的文档 https www firebase com docs ios guide offline capability html section connection state https www firebase
  • Swift -boundingBox 导致 EXC_BAD_ACCESS (代码 = 1)

    我正在使用 SceneKit 来显示文本节点 这是我的代码 foo swift extension SCNNode func getNodeSize gt width Float height Float let min max bound
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • XCode:代码覆盖率数据生成失败

    当我尝试运行单元测试时 我在 Objective C 项目中遇到了这个可怕的问题 我已经尝试了以下所有方法 根据各种 SOF 帖子 清除派生数据 删除 Library 中的所有模拟器设置 重新启动 XCode 重新启动MBP 多次重置模拟器
  • Swift 如何设计 UIWebView 在 Story Board 中自动调整全屏大小

    我在 StoryBoard 中设计了一个 320x500 的 UIWebView 但是当在 Iphone 6 Plus 模拟器中运行时 我想要这个 webview 全屏或随设备屏幕缩放 如何在故事板中制作它 我在 ViewDidLoad 中
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • 如何检查 Xcode 使用的 LLVM 编译器版本?

    我在 OS X 10 8 2 上使用 Xcode 4 5 2 我如何知道 Xcode 使用的是哪个版本的 LLVM 编译器 从命令行 07 40 35 andrew iMac SalesIQ siq 303 llvm gcc v Using
  • Swift:在 Core Data 中存储自定义类的数组

    我是核心数据新手 但对于我的一个新项目 我想将我的数据保存到核心数据 我想创建一个 Reptile 类 其中包含几个自定义类数组 如果没有核心数据 我会得到这样的东西 import Foundation import UIKit class
  • 在 swift 中设置状态栏的自定义颜色?

    在视图控制器上 我想将状态栏的颜色设置为黑色 但我无法更改它 我为此目的使用下面的代码 func setUpUI self navigationController setNavigationBarHidden true animated
  • 实时获取 Apple Watch heartRateVariabilitySDNN 吗?

    我正在使用下面的函数来获取 heartRateVariabilitySDNN 但它只获取一次并且不能像 heartbeat 那样实时计算 func HRVstart guard let quantityType HKObjectType q
  • 使用排序函数按 NSDates 对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个名为的模型类Event import Foundation import MapKit public class Event let id Int var title String let status
  • 小部件配置在 macOS 上不起作用

    我为我的 iOS 应用程序制作了一个小部件 效果很好 现在我正在将其移植到我的 macOS 应用程序中 但不知何故 小部件配置不起作用 这些项目已显示 但我无法以某种方式选择它们 查看屏幕截图 但请看一下我制作的视频 https youtu

随机推荐

  • 这是一个合理的用户注册流程吗?

    我正在制定内部申请的注册流程 我的初步设计如下 我的主要问题是是否真的有必要包括registration confirmation code 它是保护应用程序免受现实威胁还是只是增加不必要的复杂性 对此我不确定 用户输入电子邮件地址 由于这
  • 如何获得日期为 yyyy-mm-dd 的年份差异?

    我想得到以 yyyy mm dd 格式给出的两个日期之间的差异 差异应该是年份 var ds 2002 09 23 var today date new Date alert today date Date prototype yyyymm
  • 如何使用 Ant 配置惰性或增量构建?

    Java编译器提供增量构建 所以javac蚂蚁任务也是如此 但大多数其他进程则不然 考虑到构建过程 它们将一组文件 源 转换为另一组文件 目标 我在这里可以区分两种情况 变压器cannot获取源文件的子集 仅获取整个集合 这里我们只能做懒惰
  • Angular:将数据从工厂 ajax 调用传递回我的控制器

    我一直在使用 Angular 并且已经从使用本地数据 似乎工作正常 转向尝试通过工厂中的 ajax 调用来填充我的视图 这是代码 div h2 Get data using a Factory h2 div div div
  • 使用 Asynchronous ReadableStream 和 Response 从 Service Worker 的 fetch 事件返回 HTML

    这个问题类似于我的另一个问题 https stackoverflow com questions 62457644 use readablestream with response to return html from fetch eve
  • JavaFX 中的隐形舞台/场景

    我正在寻找一种隐藏 JavaFX 舞台或场景的方法 现在我知道了 hide 但这行不通 我需要一些仍然保留窗口的东西 但只是使其完全透明 一个很好的比喻是display none and visibility hidden在CSS中 第一个
  • Dataproc:使用 PySpark 从 BigQuery 读取和写入数据时出现错误

    我正在尝试读取一些 BigQuery 数据 ID my project mydatabase mytable 原始名称受保护 来自用户管理的 Jupyter Notebook 实例 内部Dataproc https cloud google
  • 通过命令行创建私有 github 存储库

    我希望能够通过命令行创建一个私人 github 存储库 我认为使用其余 API 应该可以做到这一点 但是我无法从文档中弄清楚如何做到这一点 这可能吗 The GitHub CLI https github com cli cli tool
  • 安全浮点除法

    我的代码中有一些地方我想确保 2 个任意浮点数 32 位单精度 的除法不会溢出 目标 编译器不保证 足够明确 对 INF INF 的良好处理 并且 不完全保证 IEEE 754 的异常值 可能未定义 并且目标可能会改变 另外 我无法对这几个
  • 使用 BeautifulSoup 在 python 中抓取多个页面

    我已经设法编写代码来从第一页中抓取数据 现在我不得不在这段代码中编写一个循环来抓取接下来的 n 页 下面是代码 如果有人可以指导 帮助我编写从剩余页面中抓取数据的代码 我将不胜感激 Thanks from bs4 import Beauti
  • 为什么playsound函数无法在python中播放我的mp3文件

    所以基本上我试图创建一个音乐播放程序 可以在您要求时播放音乐 我只是想让歌曲播放部分实际工作 所以我编写了一个超级简单的代码来测试它 import playsound playsound sample mp3 This was done i
  • 在 C# 中查找并写入大于 2GB 的文件

    在 C 中 FileStream的方法 Read Write Seek 采用integer在参数中 在一个上一篇文章 https stackoverflow com questions 5654298 filestream read wri
  • Access 2003中可以制作存储过程或函数吗?

    在Access 2003中 我们可以创建存储过程或函数吗 对于 Access 2003 答案是否定的 Access 2010 确实有表触发器和存储过程 这些是真正的引擎级例程 作为行更新的结果运行 因此 导致行修改的表单或 VBA 记录集代
  • 在 Silverlight 中克隆业务对象的最佳方法是什么?

    创建 DTO 克隆的最佳方法是什么 Silverlight 中没有 ICloneable 接口或 BinaryFormatter 类 反思是唯一的方法吗 这是我们为克隆编写的代码 这适用于 Silverlight 2 和 3 Public
  • CloudWatch:计算日志文件中特定字符串的出现次数

    我有包含特定弹簧模式的日志文件 这些字符串模式在每个日志事件中频繁出现 例如
  • Python 列联表

    作为我正在编写的项目的一部分 我正在生成很多很多列联表 工作流程是 获取具有连续 浮点 行的大型数据数组 并通过分箱将其转换为离散整数值 例如 结果行的值为 0 9 将两行切片为向量 X 和 Y 并生成列联表 https en wikipe
  • 终止进程树(C for Windows)

    以前曾有人问过这个问题 但我在代码中找不到明确的答案 我打开一个进程 ProcessA PID 为 1234 此进程打开一个子进程 ProcessAB PID 5678 完成后 我终止了 ProcessA 但 ProcessAB 仍然存在
  • Zendexpressive-php错误报告

    我正在尝试 zendexpressive 这是我的config autoload zend expressive global php当我尝试向将转到操作类的路径发出请求时 它返回错误页面 但我在 apache 错误日志中看不到任何 php
  • ggplot2 中的 date_minor_breaks

    我是初学者ggplot2 我无法使用date minor breaks在 x 轴上显示季度 刻度 这是我的代码 x lt c seq 1 12 time lt c 2010Q1 2010Q2 2010Q3 2010Q4 2011Q1 201
  • SceneDelegate 和 AppDelegate 之间的区别

    在我的 SwiftUI 项目中我看到AppDelegate文件以及SceneDelegate file 它们之间有什么区别 例如在方法之间SceneDelegate scene willConnectTo options 并在AppDele