ios - 如何从 2 个不同的 View Controller 观察 NSManagedObject 记录的变化?
<p><p>基本上,我有一个 masterViewController ,它有 3 个容器,我正在更新一个 NSManagedObject,例如:(Person.firstName = "Ehab")! </p>
<p>在其他 2 个容器中,一个有属性 ,另一个有属性 ,这两个集合属性都有已更改的记录。 </p>
<p>我正在寻找的是,当我更改 (Person.firstName = "taylor") 时,我需要其他 2 个类如何通知数组和字典有关刚刚发生的更改!</p>
<p>一种方法是使用 NotoficationCenter 并在 UserInfo 中传递修改后的对象。但是有更简单的方法吗??</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>使用 <code>NSManagedObjectContextObjectsDidChange</code></p>
<p>在你的 2 个容器 <code>viewDidLoad</code> 中,添加一个观察者</p>
<pre><code>override func viewDidLoad() {
super.viewDidLoad()
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(managedObjectContextObjectsDidChange(_:)), name: Notification.Name.NSManagedObjectContextObjectsDidChange, object: yourManagedObjectContext)
@objc func managedObjectContextObjectsDidChange(_ notification: Notification){
guard let userInfo = notification.userInfo else {
return
}
if let updates = userInfo as? Set<NSManagedObject> {
for update in updates {
if let person = update as? Person {
// update person info here
}
}
}
}
</code></pre>
<p>希望这对您有所帮助。</p></p>
<p style="font-size: 20px;">关于ios - 如何从 2 个不同的 ViewController 观察 NSManagedObject 记录的变化?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/46719086/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/46719086/
</a>
</p>
页:
[1]