0
我有下面的類:NSArray的排序與自定義對象
typedef enum eItems {
kItem1,
kItem2,
kItem3
} MyItem;
@interface MyClass: CCSprite<CCTargetedTouchDelegate>{
...
MyItem mClIt;
...
}
...
- (NSComparisonResult)MyCompareFunc:(MyClass*)inObject
- (MyItem)GetSomeItem;
...
和功能進行排序:
- (NSComparisonResult)MyCompareFunc:(MyClass*)inObject
{
if ([self GetSomeItem] > [inObject GetSomeItem])
return NSOrderedDescending;
else if ([self GetSomeItem] < [inObject GetSomeItem])
return NSOrderedAscending;
return NSOrderedSame;
}
我創建的MyClass的NSArray在一些類後來對象:
@interface Person : Main {
....
NSArray * mObjArr;
....
}
我需要在MyCompareFunc的幫助下使用sortUsingSelector:@selector(MyCompareFunc:)
方法對mObjArr進行排序。但我有以下錯誤:
error: accessing unknown 'mObjArr' getter method.
請幫助解決問題。
是否有與mObjArr實例變量相對應的屬性聲明?看起來,因爲你得到了一個「未知的getter」方法,調用代碼正在尋找一個屬性,這個屬性在執行文件中沒有聲明或者沒有被導入。 – warrenm 2010-06-28 05:33:31
它可能有助於顯示錯誤實際發生的代碼部分。 – Chuck 2010-06-28 05:48:15
是的,我沒有財產,謝謝。我已經爲mObjArr添加了該屬性。但我仍然有這個問題。 Programm crash on line: [self.mObjArr sortUsingSelector:@selector(MyCompareFunc :)]; 編譯時我有警告: 'NSArray'可能不會響應'-sortUsingSelector:' – 2010-06-28 06:23:30