您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。