2011-11-04 29 views
0

我重寫這段代碼核心數據二傳手:重寫核心數據二傳手:警告:「MyClass的」可不迴應「-setPrimitiveName:了newName:」

- (void)setName:(NSString *)newName 
{ 
    [self willChangeValueForKey:@"name"]; 
    [self setPrimitiveName:newName]; 
    [self didChangeValueForKey:@"name"]; 
} 

它完美,但我得到一個編譯器警告:

warning: 'MyClass' may not respond to '-setPrimitiveName:newName:' 

這是正確的嗎?如果是這樣,我可以壓制這個警告嗎? 感謝

回答

1

是的,這是做了正確的道路。核心數據將自動生成setPrimitiveName:方法。要擺脫警告,請在實現文件的頂部添加一個類別接口,該接口聲明原始訪問器。

// MyClass.m 
@interface MyClass (CoreDataPrimitiveAccessors) 

- (void)setPrimitiveName:(NSString *)newName; 
- (NSString *)primitiveName; 

@end 

// class implementation goes here 
-1

您必須聲明的方法在頭(MyClass.h)

- (void)setPrimitiveName:(NSString *)newName; 
+0

雅,我已經添加它。但現在它抱怨沒有找到方法定義! – aneuryzm

1

編譯器警告吸:[self setPrimitiveValue:newName forKey:@"name"];

+0

Apple說「setPrimitiveName:」最好用 –