问题描述
由于我不是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 (将#修改为@)