Lau*_*sac 9 core-data swift ios13 swiftui
我试图将我的 @fetchrequest 属性移动到一个辅助类,它不是一个View,但是每次我尝试这样做时,我都会收到一个错误的指令错误。
谁能帮我?
这是我的代码示例:
视图模型:
class ViewModel {
@FetchRequest(entity: Teste.entity(), sortDescriptors: []) var teste: FetchedResults<Teste>
}
Run Code Online (Sandbox Code Playgroud)
看法:
struct ContentView: View {
let viewModel: ViewModel
init(viewModel: ViewModel) {
self.viewModel = viewModel
}
var body: some View {
List(viewModel.teste) { item in // error happens in this line
Text(item.id ?? "")
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
@FetchRequest是 aDynamicProperty并且后者是
Run Code Online (Sandbox Code Playgroud)/// Represents a stored variable in a `View` type that is dynamically /// updated from some external property of the view. These variables /// will be given valid values immediately before `body()` is called. @available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *) public protocol DynamicProperty {
因此,尝试在View. 如果确实是用例,则NSFetchRequest像之前在 UIKit+CoreData 中一样直接使用,并手动将结果与 SwiftUI View 集成。
我在试图弄清楚自己如何获得类似的结果时遇到了你的问题。我猜你现在可能已经破解了这个问题,但为了那些绊倒同一个问题的人的利益,我会回答,或者至少指出可能找到答案的地方:-)
正如已经提到的,@FetchRequest属性包装器在 View 组件之外不起作用(这似乎有点奇怪的功能遗漏)
最好的选择,我发现是基本上实现了同样的事情Combine出版商从更新NSFetchedResultsController的建议通过阿波斯托罗斯在他的答案在这里,并在链接的详细介质后
我已经整理了一个简单的概念验证示例,该示例测试和演示了 iOS14 及其新生命周期管理的方法。这个演示应用程序可以在我的 GitHub 存储库中找到
祝你好运。
| 归档时间: |
|
| 查看次数: |
910 次 |
| 最近记录: |