NSArray類方法整理

2021-06-27 17:46:16 字數 4139 閱讀 1573

//**************************創 建****************************

nsinteger len1 = [arr11 count];

nsarray *array1 = @[@"qian",@"feng",@"world"];      版本新增方法

nsarray *array2 = [[nsarray alloc] initwitharray:array1];

nsarray *array3 = [[nsarray alloc] initwithobjects:@"one",@"two",@"three",@"four", nil];

nsarray *array5 = [nsarray arraywitharray:array4];

//以定義的字串整體進行分割

nsarray *arr1 = [str componentsseparatedbystring:@" "]; 

//將字串按照指定的分隔符組合成陣列

nsarray *arr2 = [str componentsseparatedbycharactersinset:[nscharacterset

charactersetwithcharactersinstring:@"

:"]]; 

//*****************************新增元素*********************************

//新增物件到現有陣列末尾

//(nsarray *)arraybyaddingobject:(id)anobject;

nsarray *array1 = [arrayarraybyaddingobject:@"six」];

//新增另乙個陣列到當前陣列的末尾

//(nsarray *)arraybyaddingobjectsfromarray:(nsarray *)otherarray;

nsarray* array2 = [array arraybyaddingobjectsfromarray:subarray];

//*****************************轉換成字串*********************************

//以傳入字串拼接陣列

//(nsstring *)componentsjoinedbystring:(nsstring *)separator;

nsstring *str = [array componentsjoinedbystring:@"-"];

//*****************************查 找*********************************

//從陣列中查詢指定的物件,返回指定物件在陣列中第一次出現的位置

nsinteger

index = [array5 

indexofobject:

@"three」];

//按照給定的範圍查詢物件,返回物件位置

//(nsuinteger)indexofobject:(id)anobject inrange:(nsrange)range;

nslog(@"ret = %lu",[array indexofobject:@"three" inrange:nsmakerange(1, 3)]);

//*****************************比 較*********************************

//判斷是否包含指定物件(大小寫敏感)

//(bool)containsobject:(id)anobject;

nslog(@"ret = %d",[array containsobject:@"one"]);

//判斷兩個陣列是否有乙個相同的成員

(找到第一次公共的物件)

//(id)firstobjectcommonwitharray:(nsarray *)otherarray;

nslog(@"first = %@",[array firstobjectcommonwitharray:array2]);

//判斷兩個陣列是否相同

//(bool)isequaltoarray:(nsarray *)otherarray;

//*****************************截 取*********************************

//獲取陣列中某個指定物件

id obj = nil;

obj = [array5 objectatindex

:3];

//返回陣列中第乙個物件

firstobject:

//返回陣列中最後乙個物件

lastobject:

//傳遞指定範圍獲取相應的物件

//(nsarray *)subarraywithrange:(nsrange)range;

nsarray *subarray1 = [array subarraywithrange:

nsmakerange(2,3)];

//定義乙個緩衝區把range中傳遞的索引號對應的物件取出來放入緩衝區

//從給定的陣列中拷貝指定範圍內的陣列到指定的緩衝區中

//(void)getobjects:(id __unsafe_unretained )objects range:(nsrange)range;

nsarray *marray = 

@[@"one",@"two",@"three",@"four",@"five",@"six"];

id__unsafe_unretained*objects;

nsrange range = nsmakerange(2, 4);

objects = (id

__unsafe_unretained *)malloc(sizeof(id) * range.length);

[marray getobjects:objects range:range];

for (int i = 0; i < range.length; i++)

free(objects);

//*****************************遍 歷*********************************

//nsindexset 建立乙個集合類物件,

nsindexset *inset = [nsindexset indexsetwithindexesinrange:nsmakerange(1, 2)] ;

//利用集合物件遍歷陣列

nsarray *subarray = [array5 objectsatindexes:inset];

nslog(@"subarray=%@",subarray);

//方法1:列舉器法

//正序列舉器

nsenumerator *enume = [array5 objectenumerator];

id obj1 = nil;

while (obj1 = [enume nextobject])

//倒序列舉器

nsenumerator *enume1 = [array5 reverseobjectenumerator];

id obj2 = nil;

while (obj2=[enume1 nextobject])

//方法2:快速列舉法

for (id obj3 in array5)

//方法3:索引遍曆法

for (int i=0; i<[array5 count];i++ )

//*****************************排 序********************************

儲存索引字母陣列 mutablecopy:將唯讀陣列轉換為mutable

_indexarray = [[_resultdict allkeys] mutablecopy];

對陣列進行排序(有返回值)

[_indexarray sortedarrayusingcomparator:^nscomparisonresult(id obj1, id obj2) ];

對陣列進行排序(沒有返回值)

[_indexarray sortusingcomparator:^nscomparisonresult(id obj1, id obj2) ];

NSArray方法 排序

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

NSArray排序方法講解

nsarray排序方法講解 給陣列排序有著多種方式 最麻煩的是sortedarrayusingselector 其次是sortedarrayusingdescriptors 最容易使用的就是sortedarrayusingcomparator 從最容易使用的開始吧 原始陣列 nsarray arra...

從NSArray看類簇

class clusters 類簇 是抽象工廠模式在ios下的一種實現,眾多常用類,如nsstring,nsarray,nsdictionary,nsnumber都運作在這一模式下,它是介面簡單性和擴充套件性的權衡體現,在我們完全不知情的情況下,偷偷隱藏了很多具體的實現類,只暴露出簡單的介面。熟悉這...