- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的项目有 CoreData
数据库,其中包含 1 个根上下文和多个子上下文。我有一个包含项目 (NSManagedObject
) 的 ViewModel
。当我更改项目中的某些内容时,会在根上下文中进行持久化,然后自动合并到所有子上下文中。
我想用 ReactiveSwift
信号/属性替换 NSFetchedResultsController
,以观察项目对象的变化。
View 模型:
var itemProperty: MutableProperty<Item> = MutableProperty(contextItem)
View Controller :
self.viewModel.itemProperty.signal.observeValues{ (item: Item) in
let newName = item.name
print("name: \(newName!)"
}
在我在别处更改项目名称后,更改会传播到 ViewModel
子上下文(NSFetchedResultsController
会收到通知),但信号永远不会推送新的item
事件。
可能是因为 NSManagedObject
引用永远不会改变?我知道我可以使用 producer(forKeyPath: "propertyKeyPath")
观察对象中特定属性的变化,但我不想只观察项目的一个特定属性,我想观察所有变化。
有没有办法观察所有对象属性的任何变化??
最佳答案
您可以观察 NSManagedObjectContextObjectsDidChange
。这可能有些矫枉过正,因为它会在任何 对象发生任何 更改时发送通知。但我已经使用它而没有任何明显的性能影响。这是 Apple documentation .
NSManagedObjectContextObjectsDidChange
的主要缺点是它不会为您提供更改后的键或值。如果您需要,请意识到在所有属性上创建观察者可能并不像您想象的那么繁重。它可以在一个循环中完成,迭代 NSEntityDescription.properties
或 its documentation 底部列出的其他四个类似属性之一。 .
关于ios - react swift : Observe Managed Object changes with MutableProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55909924/
是否有任何简单的方法可以在 Swift ReactiveCocoa 4 中从 MutableProperty 创建 MutableProperty? 我有一个案例,我想要一种用 classA 创建 c
我正在尝试在 View 模型中声明一个属性,稍后我将绑定(bind)到 View 。 class LoginViewModel { let myProperty = MutablePro
作为 this 的后续问题,收到 this fantastic answer ,并使用以下示例... class Model { let mapType = MutableProperty(.
我有一个“DataManager”单例类,它使用 RAC3 处理我的应用程序的状态。它包含多个 MutableProperty这是我在不同地点开始和观察的。 我想让我的 DataManager 启动或
我正在使用 RAC4 开发一个应用程序,它从服务器获取城市对象列表并将它们作为 JSON 返回。我通过将每个城市及其适当的属性存储为 City 对象来处理响应。然后,我将每个城市映射到 CityVie
我正在使用 ReactiveSwift 创建一个包含字典的结构。我想听字典的变化。 struct Model { let a: MutableProperty = MutablePropert
这是一个使用 ReactiveSwift 的 Swift 类,将 MutableProperty 包装在 Property 中,并在 中添加对该 Property 的订阅>ScopedDisposab
如何将 UITextView 的文本属性绑定(bind)到 MutableProperty,例如 let property = MutableProperty("") commentTextView.
所以我最近开始尝试将 ReactiveSwift 合并到我的项目中,但我似乎无法弄清楚为什么当我尝试使用 (nil) bodyManager = BodyManager() let bodyDetai
我的项目有 CoreData 数据库,其中包含 1 个根上下文和多个子上下文。我有一个包含项目 (NSManagedObject) 的 ViewModel。当我更改项目中的某些内容时,会在根上下文中进
它们有什么区别?您能否举例说明我应该在哪种情况下使用动态/可变/任意/常量属性? 最佳答案 所有答案都在这个链接Property.swift 我举几个例子: let privatString = Mu
我是一名优秀的程序员,十分优秀!