NSArray 陣列排序

2021-09-07 02:27:29 字數 2023 閱讀 1595

//方法1,使用自帶的比較器

//compare是陣列自帶的比較方法

nsarray*array=[nsarrayarraywithobjects:@"3",@"1",@"2",nil];

nsarray*array2=[array sortedarrayusingselector:@selector(compare:)];

nslog(@"%@",array2);

結果是公升序排列

//方式二:使用塊完成排

nsarray*array =[nsarrayarraywithobjects:@"1bc",@"4b6",@"123",@"789",@"3ef",nil];

nsarray*sortedarray =[array sortedarrayusingcomparator:^nscomparisonresult(id obj1,id obj2)];

nslog(@"排序後:%@",sortedarray);

方法3:自定義排序

#import

@inte***ceperson:nsobject

@propertynsstring*name;

@propertyintage;

-(id)initwithnameandage:(nsstring*)aname and:(int)aage;

-(nscomparisonresult)comparepersonbyage:(person*)person;

-(nscomparisonresult)comparepersonbyname:(person*)person;

@end

#import "person.h"

@implementationperson

@synthesizename,age;

-(id)initwithnameandage:(nsstring*)aname and:(int)aage

returnself;

}

//自定義排序方法

-(nscomparisonresult)comparepersonbyage:(person*)person

returnresult;

}

-(nscomparisonresult)comparepersonbyname:(person*)person

returnresult;

}

-(nsstring*)description

@end

#import

#import "person.h"

intmain(intargc,constchar*argv)

return0;

}

方法四:高階排序

NSArray陣列內容排序

本文正對陣列內容為其他類物件和字串時,進行了排序操作。具體看看下面 deviceinfo.h inte ce deviceinfo nsobject property nonatomic,assign nsinteger sequenceid property nonatomic,strong ns...

NSArray陣列隨機排序

nsarray和nsmutablearray的區別是前者是不可變陣列,一旦陣列初始化完成以後,就只能對陣列進行查詢操作,而後者是可變陣列,陣列初始化完成以後,繼而可以進行增 刪 改 查操作。所以對於陣列的亂序排序,必須要在可變陣列中進行操作。具體 如下 陣列隨機排序 nsmutablearray r...

NSArray方法 排序

nsarray用來儲存物件的有序列表,可以放入任何型別的物件,但它有兩個限制 首先,它只能儲存oc的物件,不能儲存c中的基本資料型別,如 int float enum struct 和隨機指標 其次不能在nsarray中儲存nil。建立陣列 nsarray array1 一年級 二年級 三年級 四年...