NSArray与自定义对象排序

时间:2010-06-28 05:25:56

标签: objective-c cocoa

我有以下课程:

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;
    ....
}

我需要使用sortUsingSelector:@selector(MyCompareFunc:)方法在MyCompareFunc的帮助下对mObjArr进行排序。但是我有以下错误:

  

错误:访问未知的'mObjArr'   getter方法。

请帮助解决问题。

1 个答案:

答案 0 :(得分:2)

我不确定这是否是唯一的问题,但你需要一个NSMutableArray而不是NSArray来使用sortUsingSelector: