您当前的位置: 首页 >  ui

SwiftUI监听CoreData托管对象属性变化以及发生EXC_BAD_ACCESS崩溃的处理

发布时间:2020-07-25 09:41:54 ,浏览量:0

在这里插入图片描述

功能需求

SwiftUI在与CoreData共同协作时,我们往往希望在托管对象的自定义属性发生变化时,UI能够得到通知。

比如托管类Foo有一个isSealed属性,我们如何仅在该属性(而不是任何其它属性)发生变化时,界面得到通知呢?

有一个好消息和一个坏消息:

  • 好消息是,所有NSManagedObject都遵守ObservableObject协议,这意味着我们可以在SwiftUI中像其它可观察对象那样使用它们。

  • 坏消息是,NSManagedObject的自定义属性都没有添加@Published修饰符,所以你无法直接将其传入视图的.onReceive修改器。

更要命的是,在低版本的iOS(在13.5.1里正常,在13.3里崩溃)里,不恰当的观察托管对象属性会造成App立即崩溃,没有任何提示的那种:

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0580s