ios – Swift:CoreData NSManagedObject的自定义设置器

ios – Swift:CoreData NSManagedObject的自定义设置器,第1张

概述如何在 Swift中为NSManagedObject实现自定义setter.我需要在设置NSMangedObject属性之前完成任务. 我的建议是使用KVC.也许不是最优雅的解决方案,但在概念上是KVC的逻辑应用. 观察属性的更改.注册init中的更改(entity:insertIntoManagedObjectContext :)或者在awakeFromFetch和awakeFromInsert 如何在 Swift中为NSManagedobject实现自定义setter.我需要在设置NSMangedobject属性之前完成任务.解决方法 我的建议是使用KVC.也许不是最优雅的解决方案,但在概念上是KVC的逻辑应用.

观察属性的更改.注册init中的更改(entity:insertIntoManagedobjectContext :)或者在awakeFromFetch和awakeFromInsert中更好,并删除willTurnIntoFault中的观察者.

init(entity: NSEntityDescription!,insertIntoManagedobjectContext context: NSManagedobjectContext!) {    super.init(entity: entity,insertIntoManagedobjectContext: context)    addobserver(self,forKeyPath: "attribute",options: NSkeyvalueObservingOptions.New | NSkeyvalueObservingOptions.old,context: nil)}overrIDe func observeValueForKeyPath(keyPath: String!,ofObject object: AnyObject!,change: NSDictionary!,context: CMutableVoIDPointer) {    if (keyPath == "attribute") {           // do what you need to do    }}@H_301_9@  

针对Swift 3进行了更新:

init(entity: NSEntityDescription!,options: [.old,.new],context: nil)}overrIDe func observeValue(forKeyPath keyPath: String?,of object: Any?,change: [NSkeyvalueChangeKey : Any]?,context: UnsafeMutableRawPointer?) {    if keyPath == "attribute" {           // do what you need to do    }}@H_301_9@                  总结       

以上是内存溢出为你收集整理的ios – Swift:CoreData NSManagedObject的自定义设置器全部内容,希望文章能够帮你解决ios – Swift:CoreData NSManagedObject的自定义设置器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存