微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用CoreData缓存postItem时,保存后看不到任何帖子

如何解决使用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 举报,一经查实,本站将立刻删除。