gpt4 book ai didi

ios - 在使用 Core Data 解包 Optional 值时意外发现 nil

转载 作者:行者123 更新时间:2023-11-28 16:13:08 26 4
gpt4 key购买 nike

所以我一直在为 Swift 3.0 更新我的代码,当应用程序打开时,我与 iCloud 同步并执行一个获取请求。

但是我得到以下的可选错误

let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.syncWithCompletion { (completed) -> Void in
}

在appDelegate中执行以下函数

func syncWithCompletion(_ completion:@escaping (_ completed:Bool) -> Void) {

if !ensemble.isLeeched {
ensemble.leechPersistentStore { error in
if error != nil {
print("cannot leech \(error!.localizedDescription)")
completion(false)
}
else {
print("leached!!")
completion(true)
}
}
}
else {
ensemble.merge{ error in
if error != nil {
print("cannot merge \(error!.localizedDescription)")
completion(false)
}
else {
print("merged!!")
completion(true)
//NSNotificationCenter.defaultCenter().postNotificationName("Updated-DB", object: nil)
}
}
}
}

我不确定可选错误是什么,Xcode 在迁移时更新了函数头。

更新:

显然下面的值是 nil

enter image description here

但我不确定自从 Swift 3 迁移以来是什么原因造成的

最佳答案

所以我发现错误是因为委托(delegate)中的didFinishLaunchingWithOptions函数。该功能未正确迁移。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: Any]?) -> Bool {

我创建了一个新项目并改用了以下内容

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

它奏效了。这是因为未调用以下内容,因此未设置我的核心数据堆栈

self.setupCoreData()

关于ios - 在使用 Core Data 解包 Optional 值时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com