objective-c - 覆盖核心数据 setter : warning: 'MyClass' may not respond to '-setPrimitiveName:newName:'

标签 objective-c cocoa core-data

我使用以下代码覆盖核心数据 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/

相关文章:

cocoa - NSTextView 在 mac os 上复制粘贴 NSTextAttachment

objective-c - 在后台线程 Objective C 中销毁对象

objective-c - 清空核心数据 NSSet(多个关系)

objective-c - 在 Xcode 4 中是否有添加属性的快捷方式?

objective-c - NSBezierPath 图

objective-c - 如何在 NSArray 中找到某种对象?

ios - MKMapview 实时汽车跟踪

cocoa - 用 Cocoa 应用程序制作一个 Firefox 插件?

iphone - 当线程在保存时被杀死时,如何防止 NSManagedObjectContext 破坏数据库?

xcode - 将核心数据文件从二进制文件转换为 XML