2016-01-13 66 views
0

我想創建一個全局函數,所以我的核心數據類可以使用此函數來創建自定義setter。但我越來越`曖昧使用「willChangeValueForKey」自定義setter/getter函數核心數據

我正在使用的代碼是:

func coredataSetter<T: NSManagedObject>(entity: T, attribute: CustomStringConvertible, value: String) { 
    entity.willChangeValueForKey(attribute.description) 
    entity.setPrimitiveValue(value, forKey: attribute.description) 
    entity.didChangeValueForKey(attribute.description) 
} 

我有點迷茫......

回答

0

我不知道爲什麼該引用是模糊的。還有的willChangeValueForKey另一種實現方式,但你的函數聲明應該澄清。

讓該功能一般不是幫助你在這種情況下,雖然這個功能會同樣使用幸運的是,它沒有模棱兩可的參考問題。此版本仍處理NSManagedObject實例和子類實例:

func coredataSetter(entity: NSManagedObject, attribute: CustomStringConvertible, value: String) { 
    entity.willChangeValueForKey(attribute.description) 
    entity.setPrimitiveValue(value, forKey: attribute.description) 
    entity.didChangeValueForKey(attribute.description) 
} 
相關問題