【发布时间】:2013-02-28 20:45:40
【问题描述】:
我已将所有 NSManagedObject 的自定义逻辑放在一个类别中,这样当模型发生变化时,我可以从模型中重新生成标准类。
我需要的一个这样的逻辑是对象属性之一的自定义设置器:
- (void) setName:(NSString *)name
{
[self willChangeValueForKey:@"name"];
[self setPrimitiveValue:name forKey:@"name"];
[self didChangeValueForKey:@"name"];
NSLog(@"name was changed");//for example
}
我已将其放在类别中,在本例中为Item+Custom.m
我的问题:
为什么每当我设置一个Item的名称时,不需要导入Item+Custom.m?上面的日志语句仍然会触发。
只是好奇发送消息的类如何不需要知道类别才能使逻辑仍然触发?
并且(可能是一个单独的问题)如果我将具有不同日志记录语句的相同自定义设置器添加到同一对象的第二个类别会发生什么?
【问题讨论】:
-
您的类别是否在您模型的
.h文件中声明? -
否 - 假设您的意思是“它是否在核心数据生成的 .h 中声明”。
标签: ios objective-c cocoa-touch core-data nsmanagedobject