繁体   English   中英

NSArray使用自定义对象排序

[英]NSArray sort with custom objects

我有以下课程:

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方法。

请帮助解决问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM