NSComparisonResult是一个枚举类型,用于表示两个对象的比较结果。通过实现比较方法来自定义排序可以使用NSComparisonResult。
示例代码如下,假设有一个Person类,包含姓名和年龄属性,我们想按照年龄来对Person对象进行排序:
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
- (NSComparisonResult)compareByAge:(Person *)otherPerson;
@end
@implementation Person
- (NSComparisonResult)compareByAge:(Person *)otherPerson {
if (self.age < otherPerson.age) {
return NSOrderedAscending;
} else if (self.age > otherPerson.age) {
return NSOrderedDescending;
} else {
return NSOrderedSame;
}
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *person1 = [[Person alloc] init];
person1.name = @"Alice";
person1.age = 25;
Person *person2 = [[Person alloc] init];
person2.name = @"Bob";
person2.age = 30;
NSComparisonResult result = [person1 compareByAge:person2];
if (result == NSOrderedAscending) {
NSLog(@"%@ is younger than %@", person1.name, person2.name);
} else if (result == NSOrderedDescending) {
NSLog(@"%@ is older than %@", person1.name, person2.name);
} else {
NSLog(@"%@ and %@ are the same age", person1.name, person2.name);
}
}
return 0;
}
在上面的示例中,我们定义了一个compareByAge方法,用于比较两个Person对象的年龄。通过调用该方法,我们可以获取两个对象的比较结果,并根据结果进行自定义排序。
当运行代码时,会输出结果:“Alice is younger than Bob”,因为Alice的年龄比Bob小。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。