如何使用 UIApplicationDelegateAdaptor 作为 ObservableObject?

2023-11-25

在我的 iOS 14 中App,我可以登记遗产AppDelegate通过做这个:

@main
struct MyApp: App {
    
    #if os(iOS)
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    #endif
    
    var body: some Scene {
        ...
    }
}

#if os(iOS)
class AppDelegate: NSObject, UIApplicationDelegate {
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
        SomeSDK.configure(with: launchOptions)
        return true
    }
}
#endif

然而,我注意到在文档你(们)能做到UIApplicationDelegateAdaptor an ObservableObject然后它会将其注入EnvironmentObject:

...delegate 将被放置在环境中,并且可以通过使用@EnvironmentObject视图层次结构中的属性包装器。

我找不到任何关于这是如何工作的例子。使其工作的语法是什么ObservableObject?


这是一个使用演示

  1. Confirm AppDelegate to ObservableObject
class AppDelegate: NSObject, UIApplicationDelegate, ObservableObject {
    @Published var value: String = ""

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

        self.value = "test" // in any callback use your published property
        return true
    }
}
  1. 注册您的AppDelegate像你一样作为适配器
@main
struct Testing_SwiftUI2App: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    // ... other code
  1. Declare @EnvironmentObject在某些人看来,在需要的地方
struct ContentView: View {
    @EnvironmentObject var appDelegate: AppDelegate    // << inject

    var body: some View {
       Text("Value: \(appDelegate.value)")  // << use
    }
}

使用 Xcode 12 / iOS 14 进行测试。

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

如何使用 UIApplicationDelegateAdaptor 作为 ObservableObject? 的相关文章

  • 删除 Swift 中字符串开头的所有换行符

    我有一个像这样的字符串 BLA Blub 现在我想删除所有前导换行符 但仅限于第一个 真实单词 出现之前的那些 这怎么可能 Thanks 如果可以接受从中删除换行符 和其他空白 字符两端然后你可以使用字符串 let string n nBL
  • CIGaussianBlur 有时会改变图像方向

    在我的 iOS 应用程序中 我想在 UIImage 上应用一个滤镜 CIGaussianBlur 当它获得具有大高度的图像时 它会旋转图像 CIContext context CIContext contextWithOptions nil
  • 应用程序终止和设备重启后 PushKit 通知未到达

    借助 PushKit 我的 iOS 应用程序即使已关闭也能成功接收 VoIP 推送通知 失败时只有一个条件 如果我通过标准任务切换器刷出 终止 我的应用程序并重新启动我的设备 起初 我在重新启动设备后就遇到了这个问题 如这个问题所述 排除启
  • 如何停止覆盖数据

    我正在尝试在我的 iOS 应用程序中保存一些数据 我使用以下代码 NSArray paths NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDomainMask
  • 如何在 ios 应用程序中将 .svg url 显示为图像

    我从服务器获取 svg 网址 如何在我的应用程序中将其显示为图像 我尝试在 UIWebView 中显示它 但无法调整内容图像的大小 我正在使用这个代码 let request NSURLRequest NSURLRequest url UR
  • 如何找到安全区域的高度和宽度?

    我正在尝试以编程方式为某些标签 按钮和文本字段设置相对于安全区域的高度和宽度的约束 例如 我希望将标签到安全区域顶部的距离设置为安全区域高度的 10 如何检索安全区域的高度和宽度 这是一个合理的方法吗 我的想法是 无论 iOS 设备如何 我
  • 获取 NSLayoutConstraints 关联视图

    我试图循环遍历视图约束 我向 view1 添加了 顶部 尾部 前导和高度约束 top trailing 和leading 是主ViewControllers 视图 如果我循环查看 view1 的约束 我只会看到高度约束 for constr
  • 从 firebase swift 读取数据

    我正在尝试从 firebase 数据库检索数据 但是当我运行代码时 它没有显示任何内容 但没有显示错误 我从Firebase手册中得到了这段代码 顺便说一句 我很确定路径是正确的 let ref FIRDatabase database r
  • 从本机代码访问 AsyncStorage

    我需要使用 JS 代码中的 AsyncStorage 将数据保存在本地存储中 我想知道是否有一种方法可以从本机代码 Objective C 或 Java 访问 AsyncStorage 存储的数据 Thanks 如果你导入RCTAsyncL
  • 使用 Unity3D 按钮执行 xcode 函数?

    是否可以在 unity 中制作一个按钮来执行 Xcode 中的功能 我正在尝试执行来自 unity3d 项目的推送消息 请帮忙 因为这让我发疯 提前致谢 是的 您可以调用具有 C 接口的本机 Objective C 代码 您甚至可以在 Un
  • AVAssetExportSession 前置摄像头方向错误

    我仅在前置摄像头中使用 AVAssetExportSession 导出的视频方向错误 我按照这个教程https stackoverflow com a 35368649 3764365 https stackoverflow com a 3
  • iOS Javascript DOM“冻结?”

    这里有几个问题 有没有办法阻止 iOS 在滚动时冻结页面上的 javascript 当您在另一个选项卡中或切换应用程序时 iOS 是否会冻结 JavaScript iOS 上还有其他主要的 javascript 限制吗 iOS 6 x 会暂
  • 快速不平衡调用开始/结束外观转换

    这已经困扰我一段时间了 我有一个UISplitViewController里面一个UITabBarController 主视图是一个TableView 当我单击一个单元格时 我会弹出一个非常基本的视图控制器 其中只有一个UIButton居中
  • iPad 上的 Cordova 锁定方向失败

    我正在使用 cordova 3 5 0 0 2 6 最后一个稳定版本 我在锁定 iPad 设备的方向时遇到问题 在 iPhone 上它可以正常工作 但在 iPad 上方向未锁定 我想锁定整个应用程序而不仅仅是页面 这是我当前的 config
  • iOS 图表错误:Thread1:EXC_BAD_ACCESS(代码=2,地址=0x2a0c220)

    因此 我正在遵循 AppCoda 上的 iOS Charts 教程 我完美地遵循了它 然后当我遇到问题时 我还复制了代码以使其完全匹配 问题是 当我尝试创建饼图然后运行它时 我收到错误 线程1 EXC BAD ACCESS 代码 2 地址
  • 如何以编程方式添加 NSMenu?

    我没有使用storyboard和xib 只使用了代码 我想以编程方式添加 编辑 菜单 我的问题是 1 如何显示 编辑 菜单 评论问题1 需要输入什么代码 2 Swift 提供了复制和粘贴等操作吗 class TestManager NSOb
  • CIImage内存未释放

    我正在尝试拍摄一系列图像 混合当时的 X 图像并生成新图像 这是我必须完成此任务的代码 static func blendImages blendFrames Int blendMode CIImage BlendMode imagePat
  • 无法在 Swift 的 Storyboard 中加载 UIViewController XIB 文件

    我读了使用 XCode 故事板实例化使用 XIB 进行设计的视图控制器 https stackoverflow com questions 9155719 using xcode storyboard to instantiate view
  • cellForRowAtIndexPath:未调用

    我的应用程序有两种状态 已登录和未登录 并且我有以下架构 大大简化 ViewController A 包含一个搜索框和一个表视图 ViewController B 用于登录应用程序 流程如下 用户未登录 A 被压入堆栈 在viewWillA
  • 错误:“字符串”无法转换为“字符串!”

    mapView rac valuesForKeyPath userTrackingMode observer self subscribeNextAs block handling 我收到一个错误 String is not convert

随机推荐

  • 遮蔽 Maven 中的依赖关系

    我有两个通过 Maven 导入的依赖项 它们都导入一个公共库 但版本不同 但版本彼此不兼容 本质上是描述的问题在这篇文章中 但不幸的是 对我来说 解决方案并不像博客文章描述的那么简单 因为没有通用版本的包Z这适用于两个依赖项 跳过导致这一点
  • Android 中如何统计通知数量并显示单个图标?

    我有多个 Android 通知 但是当我从网络服务器发送消息时 Android 设备会在状态栏上创建一个新的通知图标 我想统计未读通知的数量 显示在statusbar具有单个图标 并且当阅读通知时 该通知必须更改未读通知计数的数量 我该怎么
  • 信号量和并发编程

    对于家庭作业 我需要编写以下场景 这将通过使用 BACI 的信号量来完成 即 C 有 2 个男女通用卫生间 每个可容纳 4 人 由于它是男女皆宜的 所以只有同性别的人可以同时进入卫生间 先进先出并不重要 我脑子里有一个基本的 算法 可以处理
  • 数据库的 ID 最佳实践 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想知道构建和存储 ID 的最佳实践是什么 几年前 一位教授以社会安全号码为例 向我讲述了构造不良的身份识别系统的危险 特别是 由于 SSN 没有任何错误检测功能 无法区分 9 位数字符串
  • 如何使用 xcode5 在 mac 应用程序中对捆绑的可执行文件进行代码签名

    我有一个在 xCode 5 中创建的应用程序 其中包含捆绑的可执行文件 我正在尝试将应用程序提交到 Mac 应用程序商店 但是当我提交它时 它失败并显示以下消息 未启用应用程序沙箱 以下可执行文件必须包含 com apple securit
  • 使用回发数据抓取页面 javascript Python Scrapy

    我正在通过 Scrapy 使用 ASP NET 编程爬行一些目录 要爬行的页面编码如下 javascript doPostBack ctl00 MainContent List Page X 其中 X 是 1 到 180 之间的整数 Mai
  • 如何更改 IE 中输入字段中文本光标的颜色?

    据我所知 在 Firefox 和 Chrome 中 输入字段中文本光标的颜色会更改为colorCSS 属性 但在 IE 中却没有任何效果 有没有办法在IE中实现这种效果呢 IE 输入中文本光标的颜色始终与背景颜色相反 所以你不能在IE上 这
  • 具有相互关联的三个表的多对多 (SqlAlchemy)

    我有三个表 用户 设备和角色 我已经创建了一个像这样的用户和设备之间的多对多关系 Many to Many relation between User and Devices userDevices db Table user device
  • 返回由 USING 创建的对象

    我正在使用中创建一个对象 下面的 obj 并将该对象作为函数返回的一部分返回 这会导致任何问题 例如在我尝试在另一个函数中使用返回值之前对象将被处理吗 using MyObject obj new MyObject return obj 这
  • 在 MVVM 世界中更改 CollectionViewSource 源

    Edited 我创建了一个新的 VS2010 WPF 应用程序 仅包含 3 个文件 MainWindow xaml MainWindow xaml cs 和 MainWindowViewModel cs 下面列出 如果有人觉得真的很有帮助
  • 错误:致命:不是 git 存储库(或任何父目录):.git

    当我尝试将图像放入项目的 Resources 文件夹中时 我收到以下消息 致命 不是 git 存储库 或任何父目录 git 我该如何修复它 有同样的问题 我复制了一个项目然后尝试删除文件 如果您希望能够编辑项目 请输入 git initfo
  • 在调用 Objective-C 对象的实例方法时,是否可以释放该对象?

    请考虑以下情况 Objective C 类的实例由一个强引用和一个弱引用 在 ARC 下 引用 在线程 X 上 通过弱引用在实例上调用方法 在线程 Y 上 强引用被破坏 因此不再有对该实例的强引用 并且应该释放该实例 这种情况是否可能 因为
  • Inno Setup:如何查看 Inno Setup 预处理器的输出(翻译)?

    我有一个带有预处理器指令的 Inno Setup 脚本 defines ifs etc 我想在我的脚本上运行 Inno Setup 预处理器并查看预处理器的输出 Inno Setup speak 中的翻译 也就是说 我想查看预处理器的结果
  • Spring Security OAuth2 - @EnableOauth2Sso 但也接受令牌作为身份验证

    我有一个应用程序 EnableOAuth2Sso on the WebSecurityConfigurerAdapter 添加后 EnableOAuth2Sso该应用程序将我重定向到授权服务器 并允许在该授权服务器登录后进行访问 我也想提供
  • 在Python中获取括号内的字符串

    我有一个示例字符串
  • 我应该测试私有方法还是只测试公共方法? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我读过了这个帖子关于如何测试私有方法 我通常不测试它们 因为我一直认为仅测试从对象外部调用的公共方法会更快 你测试私有方法吗 我应该总是测试它们吗 我不对私有方法进行单元测试 私有方法是应
  • 在 Tomcat 中重新部署应用程序时出现内存泄漏

    当我在 tomcat 中重新部署应用程序时 出现以下问题 The web application created a ThreadLocal with key of type java lang ThreadLocal value java
  • 向 Python 脚本发送消息

    我正在尝试编写一个小 python 程序来关闭或重新启动我的 Raspberry PI 由连接到 GPIO 的按钮驱动 该程序可以通过两个 LED 显示树莓派的当前状态 启动 运行 停止 重启 python 程序作为守护进程执行 由 ini
  • C 中的非 void 函数不返回任何内容

    以下代码片段中的最佳实践是什么 int foo struct data bar struct info bla if bar bla gt status 0 return 事实上 它工作得很好 但我感觉不舒服gcc给我一个警告 这是实际的代
  • 如何使用 UIApplicationDelegateAdaptor 作为 ObservableObject?

    在我的 iOS 14 中App 我可以登记遗产AppDelegate通过做这个 main struct MyApp App if os iOS UIApplicationDelegateAdaptor AppDelegate self va