17、优化iOS应用:Core Data与网络数据获取

iOS优化:Core Data与网络数据获取

优化iOS应用:Core Data与网络数据获取

1. 响应数据库变化

在处理数据库变化时,我们可以使用两种方法: NSFetchedResultsController 和通知。下面是一个通过通知来响应持久容器中托管对象上下文变化的示例代码:

override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector:  
        #selector(self.managedObjectContextDidChange(notification:)), name:  
        .NSManagedObjectContextObjectsDidChange, object: nil)
}

当视图加载时,当前的 MoviesViewController 实例会被添加为 .NSManagedObjectContextObjectsDidChange 通知的观察者。这样,每当向数据库添加新数据时,用户界面就会更新。

2. 理解多个 NSManagedObjectContext 实例的使用

在很多情况下,我们只需要一个托管对象上下文。但当进行大量数据导入等操作时,使用单个托管对象上下文会导致主线程阻塞,使用户界面失去响应。这时,使用多个托管对象上下文是解决问题的关键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值