我通常有这样的 SwiftUI 视图
struct MyView: View {
@FetchRequest var users: FetchedResults<User>
init() {
self._users = FetchRequest(
entity: User.entity(),
sortDescriptors: [
],
predicate: NSPredicate(format: "company.id == %@", companyId)
)
}
var body: some View {
List {
ForEach(Array(self.users.enumerated()), id: \.1.objectID) { (i, user) in
Text("\(user.name)")
}
}
}
但是在锁定屏幕/使用主页按钮并返回应用程序后。最初,此视图以空的 NSManagedObjects 唤醒,对象似乎可用,有正确的 users.count 值,每个对象都有其适当的 objectID。但其他托管对象属性为零。然后有时我会遇到在随后的视图刷新中它可以(我认为“错误”此对象属性)获取此属性并显示正常,或者可以保留 nil 值并且我在列表中有空结果或崩溃,具体取决于 user.name 被强制解包或不
user.name! or user.name ?? ""