我使用以下代码覆盖核心数据 setter :
- (void)setName:(NSString *)newName
{
[self willChangeValueForKey:@"name"];
[self setPrimitiveName:newName];
[self didChangeValueForKey:@"name"];
}
它工作得很好,但是我收到了编译器警告:
warning: 'MyClass' may not respond to '-setPrimitiveName:newName:'
这是正确的吗?如果是这样,我可以抑制这个警告吗? 谢谢
最佳答案
是的,这是正确的做法。 setPrimitiveName:
方法将由 Core Data 自动生成。要消除警告,请在声明原始访问器的实现文件顶部添加一个类别接口(interface)。
// MyClass.m
@interface MyClass (CoreDataPrimitiveAccessors)
- (void)setPrimitiveName:(NSString *)newName;
- (NSString *)primitiveName;
@end
// class implementation goes here
关于objective-c - 覆盖核心数据 setter : warning: 'MyClass' may not respond to '-setPrimitiveName:newName:' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8011193/