简体   繁体   English

NSArray使用自定义对象排序

[英]NSArray sort with custom objects

I have the following class: 我有以下课程:

typedef enum eItems {
kItem1,
kItem2,
kItem3  
} MyItem;

@interface MyClass: CCSprite<CCTargetedTouchDelegate>{
... 
MyItem mClIt;
...
}

...
- (NSComparisonResult)MyCompareFunc:(MyClass*)inObject
- (MyItem)GetSomeItem;
...

And function for sorting: 和排序功能:

- (NSComparisonResult)MyCompareFunc:(MyClass*)inObject
{
 if ([self GetSomeItem] > [inObject GetSomeItem])
    return NSOrderedDescending;
 else if ([self GetSomeItem] < [inObject GetSomeItem])
    return NSOrderedAscending;
 return NSOrderedSame;
}

I create the NSArray of the MyClass objects later in the some class: 我稍后将在某些类中创建MyClass对象的NSArray:

@interface Person : Main {
    ....
    NSArray * mObjArr;
    ....
}

And I need to sort the mObjArr with help of MyCompareFunc, using sortUsingSelector:@selector(MyCompareFunc:) method. 我需要使用sortUsingSelector:@selector(MyCompareFunc:)方法在MyCompareFunc的帮助下对mObjArr进行排序。 But I have the following error: 但是我有以下错误:

error: accessing unknown 'mObjArr' getter method. 错误:访问未知的'mObjArr'getter方法。

Help please to resolve the problem. 请帮助解决问题。

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

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

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