1

我正在使用具有四个日期属性的核心数据实体 - syncDate、historySyncDate 等。

有没有一种方法可以编写一个方法来获取这些属性之一的 NSString 名称并为其分配适当的日期?

前任:

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

2 回答 2

5

当然:

[service setValue:date forKey:attribute];

来自“NSManagedObject 类参考”:

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

...
如果 key 标识一对一关系,则将 value 指定的对象与接收者相关联,如果存在则取消先前相关的对象。给定一个集合对象和一个标识一对多关系的键,将集合中包含的对象与接收者相关联,如果有的话,取消先前相关的对象。

此方法被 NSManagedObject 覆盖以访问托管对象的通用字典存储,除非接收者的类明确提供键值编码兼容的访问器方法。

于 2013-06-19T17:41:32.457 回答
3

你应该可以做...

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

假设Service是一个子类NSManagedObject

于 2013-06-19T17:42:13.350 回答