.task 崩溃 - Swift 5.5 (iOS 15 Beta 5)

Posted

技术标签:

【中文标题】.task 崩溃 - Swift 5.5 (iOS 15 Beta 5)【英文标题】:.task crashes - Swift 5.5 (iOS 15 Beta 5) 【发布时间】:2021-08-15 03:44:44 【问题描述】:

不确定这是否是最新 ios 版本的问题,或者苹果是否有其他计划,但直到现在,我在异步函数中使用 .task 而不是 .onAppear ,现在它崩溃了。

错误:Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

手机崩溃(不是模拟器):

iOS 15 beta 5 (19A5318f)(我找不到任何被弃用的信息here)

它适用于:

iOS 15 beta 4(手机) 使用 macOS 12.0 Beta (21A5304g) 的 Xcode 模拟器

这是一个简单的 sn-p:

struct ContentView: View 
    var body: some View 
        Text("iOS 15")
            .task 
                print("please work")
            
    

知道发生了什么吗,如果这可能是一个错误或 Apple 偏离了它?

谢谢

【问题讨论】:

我没有那个版本的 Xcode 来测试这个,但你试过documentation 中的代码吗?如果这也不起作用,那么我认为这可能是他们这边的一个错误。 @Sweeper 检查该代码.. @Sweeper 我复制粘贴了代码,但它失败了。我会提交错误报告。你知道它的链接吗? 在 macos 12.beta5、xcode 13.beta5、target ios 15 和 macCatalyst 上非常适合我。在 iPhone io15、macos12 上测试 您的 iPhone 是最新的 beta (5) 版本吗?在 Xcode 中它工作正常,它在 iPhone 上失败了@workingdog 【参考方案1】:

“错误”未修复,我仍然在我的设备上看到相同的错误,但我找到了解决方法:

而不是在视图中使用:

.task 

我正在使用:

.onAppear 
    Task  ... 

如果有任何变化,将更新此答案。从 Beta 6 开始,问题仍然存在......

【讨论】:

我注意到您的错误消息与您的代码 sn-p 中的内容不匹配。您是在显示的代码中收到错误,还是在您未显示的其他代码中出现错误?因为您展示的代码适用于我(和其他人)使用最新的操作系统和 xcode。 代码内容不同,SwiftUI代码是一样的,我的意思是..一个.task无论你在里面放什么都不能改变lol就像我说的那样,我尝试了最简单的形式代码,我在上面的示例中使用它仍然失败,这不是我的内容,我什至创建了一个带有 hello world 的新项目并且它失败了:/ @workingdog 我在 Xcode 13 beta 4 上遇到了 .task 崩溃,但在 Xcode 13 beta 5 上不再崩溃

以上是关于.task 崩溃 - Swift 5.5 (iOS 15 Beta 5)的主要内容,如果未能解决你的问题,请参考以下文章

Swift 5.5 新特性

执行 Swift 库时 iOS 崩溃

iOS Swift 3 UIImagePickerController 崩溃

iOS Swift:deleteRowsAtIndexPaths 崩溃 [重复]

Swift 中的本地通知在 iOS 7 上崩溃

Crashlytics iOS - 第 0 行崩溃 - Swift 来源