如何解决使用CoreData缓存postItem时,保存后看不到任何帖子
由于我不是CoreData的新手,所以我不确定如何解释此问题,但是实现此功能的方式如下所示:
...
@Environment(\.managedobjectContext) var managedobjectContext
@FetchRequest(fetchRequest: PostItem.getAllPosts()) var postItems:FetchedResults<PostItem>
@Observedobject var observed = observer()
@Observedobject var postobserved = Postobserver()
...
init() {
self.setUpPosts()
}
...
func setUpPosts() {
for i in postobserved.posts{
let post = PostItem(context: self.managedobjectContext)
post.type = i.type
post.user = i.user
post.image = i.thumb
post.id = i.id
post.text = i.text
post.comment = i.comments
post.video = i.media
do{
try self.managedobjectContext.save()
}catch{
print(error)
}
}
}
...
var body : some View{
ZStack(alignment: .center){
vstack{
if self.postItems.isEmpty {
Text("No Posts").fontWeight(.heavy)
} else {
ScrollView(.vertical,showsIndicators: false){
ForEach(self.postItems) { post in
PostCard(showComment: self.$showComment,post: post)
.background(Color.gray.opacity(0.1)).cornerRadius(50).padding()
}
}
}
}
}
}
设置完dataModel和将引用该dataModel的类之后,我仍然对CoreData如何不保存这些帖子感到困惑。我没有得到一个错误。也许postObserved尚未与帖子一起设置,这导致setUpPosts不会将任何数据保存到dataModel中。将我推向正确方向的任何帮助都会有所帮助。
截至目前,iOS模拟器仅显示“无帖子”,这意味着postItems为空。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。