一般排序:
nsarray *array1 = [nsarray arraywithobjects:@"11",@"2",@"13",@"19",@"21",@"7", nil];
nsarray *array2 =[array1 sortedarrayusingselector:@selector(comparenumber:)];
如果要比較數字的話就要給nsstring寫個類目:
- (nscomparisonresult)comparenumber:(nsstring *)stringelse if(a > b)else
}
如果只是比較字串排序的話就用compare:(要區分大小寫)
caseinsensitivecompare:不區分大小寫排序
block排序:主要用於不重寫排序方法的同時可以對裡面的資料進行公升序列排序或者降序列排序
nsarray *array10 = [array1 sortedarrayusingcomparator:^nscomparisonresult(id obj1, id obj2) ];
自定義物件排序:
如:學生年齡
需要在學生類裡面寫排序方法
- (nscomparisonresult)studentagecompare:(student *)studentif (_age > student.age) else
}
排序巢狀:(按名字排序,名字相同排年齡)
- (nscomparisonresult)teachercompareage:(teacher *)teacherelse if (_age > teacher.age)else
}else if ([_name compare:teacher.name] > 0)else
}
多種物件型別集合排序
如:將老師和學生的年齡排序
使用協議:
@protocol personinfo @property (nonatomic,assign) nsinteger age;
@end
老師和學生遵守協議
排序方法:(老師和學生都有)
- (nscomparisonresult)compareage:(id)objectelse if (_age > [object age])else
}
總結:一般常用的排序總結在這裡了,以後遇到新的再新增。 OC 屬性總結
setter getter setter 方法的作用 為單一的變數賦值.setter 方法規範寫法 1.號方法,無返回值.名字以set開頭 要設定的變數的例項變數名 首字母要大寫 setter方法有且只有乙個引數 引數的型別 和例項變數型別相同 引數名 和例項變數名相同 getter 方法的作用 獲...
OC學習總結
經過小半個月的學習oc學習結束了,或多或少的有些收穫與不足.1首先學習物件導向與面向過程的區別 開發中 先定義類,再建立物件,然後使用物件 定義類包含了兩個部分 介面部分和實現部分 1 介面部分 對外宣告類的特徵和行為 標誌 inte ce 2 實現部分 對內實現行為.標誌 implementati...
總結OC中陣列排序3種方法
大體上,oc中常用的陣列排序有以下幾種方法 sortedarrayusingselector sortedarrayusingcomparator sortedarrayusingdescriptors 1 簡單排序 sortedarrayusingselector 如果只是對字串的排序,可以利用s...