2013-06-19 31 views
0

我与有四个日期属性的核心数据实体的工作 - syncDate,historicSyncDate等如何使用KVC设置Core Data对象的属性?

有没有一种方法我可以写,将采取这些属性之一的NSString的名称,并指定一个单一的方法一个适当的日期呢?

例:

-(void)updateDate:(NSDate*) date forAttribute:(NSString*)attribute forService:(Service*)service 
{ 
    //based on attribute name, set service.syncDate or service.historicSyncDate, etc 
} 

回答

4

不确定:

[service setValue:date forKey:attribute]; 

从 “NSManagedObject类参考”:

setValue:forKey:
设置接收器的指定的属性来指定的 值。

...
如果键标识 对一的关系,涉及由值指定给 接收机,unrelating先前相关对象,如果有一个的对象。 给定一个集合对象和一个标识多对多关系的关键字,将集合中包含的对象与接收方相关联,如果存在任何关联对象,则不对其进行关联。

此方法由NSManagedObject重写访问管理 对象的通用字典存储,除非接收器的类 明确规定键值编码兼容存取方法 键。

3

你应该能够做到......

-(void)updateDate:(NSDate*) date forAttribute:(NSString*)attribute forService:(Service*)service 
{ 
    [service setValue:date forKey:attribute]; 
} 

假设Service是一个子类的NSManagedObject