首页 > 解决方案 > 屏幕锁定后的SwiftUI @FetchRequest不获取数据并返回零属性

问题描述

我通常有这样的 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 ?? ""

标签: core-dataswiftuifetchrequest

解决方案


推荐阅读