我正在使用具有四个日期属性的核心数据实体 - syncDate,historicSyncDate等。
有没有办法可以编写一个方法来获取其中一个属性的NSString名称并为其指定一个合适的日期?
例如:
-(void)updateDate:(NSDate*) date forAttribute:(NSString*)attribute forService:(Service*)service
{
//based on attribute name, set service.syncDate or service.historicSyncDate, etc
}
答案 0 :(得分:4)
不确定
[service setValue:date forKey:attribute];
来自“NSManagedObject类参考”:
setValue:forKey:
将接收器的指定属性设置为 指定值。...
如果密钥标识a to-one relationship,将value指定的对象关联到 接收器,如果有的话,与先前相关的对象无关。 给定一个集合对象和一个标识一个对多的密钥 关系,将集合中包含的对象关联到 接收器,如果有的话,与先前相关的对象无关。NSManagedObject会覆盖此方法以访问托管 对象的通用字典存储,除非接收者的类 明确提供符合键值编码的访问器方法 键。
答案 1 :(得分:3)
你应该可以......
-(void)updateDate:(NSDate*) date forAttribute:(NSString*)attribute forService:(Service*)service
{
[service setValue:date forKey:attribute];
}
假设Service
是NSManagedObject