gpt4 book ai didi

ios - CoreData 可以工作,但在控制台中又返回一个 nil 对象?

转载 作者:行者123 更新时间:2023-11-30 10:51:26 25 4
gpt4 key购买 nike

首先感谢您提供的任何帮助,感谢您的宝贵时间:)

我没有任何错误或问题,但在使用 Core Data & Swift 4 获取数据时,我的控制台打印 nils。

这是我的代码:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext


//Fetch from Core Data

let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")


//request.predicate = NSPredicate(format: "age = %@", "12")
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
for data in result as! [NSManagedObject] {
print(data.value(forKey: "username") as Any) // ou as? String
print(data.value(forKey: "date_naissance") as Any) // ou as? String
}

} catch {

print("Failed")
}

这是我的控制台输出:

Optional(julien) Optional(1994-09-09 04:34:00 +0000) nil nil

如果我只获取一个值,那么控制台只显示一个 nil。每个打印的值都是零。

另外,我以前的代码是

print(data.value(forKey: "username") as! String)

但是在控制台中打印值后它崩溃了(尽管值被打印了)。

所以我通过打印为 Any 来修复它,但现在我得到了 nils。

我只是想知道这是否正常,因为它暂时不会影响我的应用程序,但可能很快就会影响。

感谢您的时间、帮助和支持:)

祝你有美好的一天!朱利安

最佳答案

尝试将循环代码更改为此

do {
let result = try context.fetch(request)
for data in result as! [NSManagedObject] {
if let userName = data.value(forKey: "username") as? String {
print(userName)
}
if let dateNaissance = data.value(forKey: "date_naissance") as? String {
print(dateNaissance)
}
}

} catch {

print("Failed")
}

检查documentation可选的

关于ios - CoreData 可以工作,但在控制台中又返回一个 nil 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54436396/

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