IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx

上传人:b****5 文档编号:4916159 上传时间:2022-12-11 格式:DOCX 页数:25 大小:19.60KB
下载 相关 举报
IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx_第1页
第1页 / 共25页
IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx_第2页
第2页 / 共25页
IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx_第3页
第3页 / 共25页
IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx_第4页
第4页 / 共25页
IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx

《IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx》由会员分享,可在线阅读,更多相关《IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx(25页珍藏版)》请在冰豆网上搜索。

IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi.docx

IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDi

IOS开发之旅-IOS常用数据结构NSArray、NSMutableArray、NSDictionary、NSMutableDi

∙NSArray

∙NSArray基本用法

voidarrayTest1()

{

//数组初始化最后必须以nil结尾,表示数组元素结束

NSArray*array1=[[NSArrayalloc]initWithObjects:

@"item0",@"item1",@"item2",@"item3",@"item4",nil];

NSLog(@"%@",array1);

/*(

item1,

item2,

item3,

item4

)*/

//获取数组元素个数

NSLog(@"arraycount:

%ld",array1.count);

/*arraycount:

4*/

//获取特定所以元素

NSLog(@"array[1]=%@",array1[1]);

/*array[1]=item1*/

NSLog(@"array[1]=%@",[array1objectAtIndex:

(NSInteger)1]);

/*array[1]=item1*/

NSLog(@"firstObject=%@",array1.firstObject);//获取第一个元素

/*firstObject=item1*/

NSLog(@"lastObject=%@",array1.lastObject);//获取最后一个元素

/*lastObject=item4*/

//拼接数组

NSLog(@"%@",[array1componentsJoinedByString:

@","]);

/*item0,item1,item2,item3,item4*/

//查找元素的索引,如果包含特定元素,返回具体索引,否则返回:

9223372036854775807

NSLog(@"%ld",[array1indexOfObject:

@"item11"]);

//是否包含特定元素

NSLog(@"%i",[array1containsObject:

@"item1"]==TRUE?

1:

0);

/*1*/

NSArray*subArray=[array1subarrayWithRange:

NSMakeRange(1,2)];

NSLog(@"%@",subArray);

/*

item1,

item2

*/

//保存数组元素到本地文件,以xml格式序列化存储

[array1writeToFile:

@"/Users/new/Desktop/array.txt"atomically:

YES];

/*

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEplistPUBLIC"-//Apple//DTDPLIST1.0//EN"":

//

item0

item1

item2

item3

item4

*/

//读取本地文件,反序列化为数组

NSArray*array2=[[NSArrayalloc]initWithContentsOfFile:

@"/Users/new/Desktop/array.txt"];

NSLog(@"%@",array2);

/*

item0,

item1,

item2,

item3,

item4

*/

//判断数组元素是否相等

BOOLresult=[array1isEqualToArray:

@[@"item0",@"item1",@"item2"]];

NSLog(@"%@",result);

/*0*/

}

∙NSArray遍历

voidarrayTest2()

{

NSArray*array1=[[NSArrayalloc]initWithObjects:

@"item0",@"item1",@"item2",@"item3",@"item4",nil];

//遍历方法1

for(intindex=0;index

NSLog(@"%@",array1[index]);

}

/*

item0

item1

item2

item3

item4

*/

//遍历方法2

for(NSString*iteminarray1){

NSLog(@"%@",item);

}

/*

item0

item1

item2

item3

item4

*/

//遍历方法3

//NSEnumerator*enumerator=[array1reverseObjectEnumerator];//逆向遍历

NSEnumerator*enumerator=[array1objectEnumerator];//正向遍历

NSString*item=nil;

while(item=[enumeratornextObject]){

NSLog(@"%@",item);

}

/*

item0

item1

item2

item3

item4

*/

//遍历方法4

[array1enumerateObjectsUsingBlock:

^(idobj,NSUIntegeridx,BOOL*stop){

NSLog(@"%ld=%@",idx,obj);

}];

/*

0=item0

1=item1

2=item2

3=item3

4=item4

*/

}

∙NSArray排序

voidarrayTest3()

{

//排序方法1,普通比较器

NSArray*array1=@[@"1",@"21",@"11",@"5",@"51",@"3"];

NSArray*array2=[array1sortedArrayUsingSelector:

@selector(compare:

)];

NSLog(@"%@",array2);

/*

1,

11,

21,

3,

5,

51

*/

//排序方法2,代码块

NSArray*array3=[array1sortedArrayUsingComparator:

^NSComparisonResult(idobj1,idobj2){

return[obj1compare:

obj2];

}];

NSLog(@"%@",array3);

/*

1,

11,

21,

3,

5,

51

*/

//排序方法3,自定义排序描述符

NSArray*originalArray=@[

@{@"page_no":

@"27",@"age":

@24},

@{@"page_no":

@"1",@"age":

@23},

@{@"page_no":

@"1",@"age":

@21},

@{@"page_no":

@"1",@"age":

@25},

@{@"page_no":

@"1",@"age":

@15},

@{@"page_no":

@"12",@"age":

@19},

@{@"page_no":

@"23",@"age":

@29},

@{@"page_no":

@"3",@"age":

@22},

@{@"page_no":

@"2",@"age":

@30},

@{@"page_no":

@"17",@"age":

@33}

];

NSSortDescriptor*alphaNumSD=[NSSortDescriptorsortDescriptorWithKey:

@"page_no"ascending:

YEScomparator:

^NSComparisonResult(NSString*string1,NSString*string2){

return[string1compare:

string2options:

NSNumericSearch];

}];

NSSortDescriptor*dataNumSD=[NSSortDescriptorsortDescriptorWithKey:

@"age"ascending:

YEScomparator:

^NSComparisonResult(iddata1,iddata2){

return[data1compare:

data2];

}];

NSArray*sortedArray=[originalArraysortedArrayUsingDescriptors:

@[alphaNumSD,dataNumSD]];

NSLog(@"%@",sortedArray);

/*

{

age=15;

"page_no"=1;

},

{

age=21;

"page_no"=1;

},

{

age=23;

"page_no"=1;

},

{

age=25;

"page_no"=1;

},

{

age=30;

"page_no"=2;

},

{

age=22;

"page_no"=3;

},

{

age=19;

"page_no"=12;

},

{

age=33;

"page_no"=17;

},

{

age=29;

"page_no"=23;

},

{

age=24;

"page_no"=27;

}

*/

//排序方法4,自定义比较方法

Person*person1=[[Personalloc]initWithFirstName:

@"hello"lastName:

@"world"age:

35];

Person*person2=[[Personalloc]initWithFirstName:

@"abc"lastName:

@"def"age:

25];

Person*person3=[[Personalloc]initWithFirstName:

@"cal"lastName:

@"kdl"age:

22];

NSArray*personArray=@[person1,person2,person3];

NSArray*tempArray=[personArraysortedArrayUsingSelector:

@selector(comparePeople:

)];

NSLog(@"%@",tempArray);

/*

"firstName:

abc,lastName:

def,age:

25",

"firstName:

cal,lastName:

kdl,age:

22",

"firstName:

hello,lastName:

world,age:

35"

*/

}

∙NSMutableArray

  NSMutableArray继承NSArray,所以NSArray的所有特性NSMutableArray都有,在此基础上,NSMutableArray主要新增了添加、删除、更新、插入等特性,如下代码演示:

voidarrrayTest4()

{

NSMutableArray*mutableArray=[[NSMutableArrayalloc]initWithObjects:

@"item0",@"item1",@"item2",@"item3",@"item4",nil];

NSLog(@"%@",mutableArray);

/*

item0,

item1,

item2,

item3,

item4

*/

//添加元素

[mutableArrayaddObject:

@"item5"];

NSLog(@"%@",mutableArray);

/*

item0,

item1,

item2,

item3,

item4,

item5

*/

//插入元素

[mutableArrayinsertObject:

@"inserteditem"atIndex:

(NSInteger)1];

NSLog(@"%@",mutableArray);

/*

item0,

"inserteditem",

item1,

item2,

item3,

item4,

item5

*/

//删除元素

[mutableArrayremoveObject:

@"item5"];

NSLog(@"%@",mutableArray);

/*

item0,

item1,

item2,

item3,

item4

*/

//更新元素

[mutableArrayreplaceObjectAtIndex:

(NSInteger)5withObject:

@"replacedItem"];

NSLog(@"%@",mutableArray);

/*

item0,

"inserteditem",

item1,

item2,

item3,

replacedItem

*/

//删除所有元素

[mutableArrayremoveAllObjects];

NSLog(@"%ld",mutableArray.count);

/*0*/

}

 

∙NSDictionary

∙字典初始化

voidarrayTest5()

{

//字典初始化方式1

NSDictionary*dictionary1=[[NSDictionaryalloc]initWithObjectsAndKeys:

@"value0",@"key0",

@"value1",@"key1",

@"value2",@"key2",

@"value3",@"key3",

@"value4",@"key4",

nil];

NSLog(@"%@",dictionary1);

/*

{

key0=value0;

key1=value1;

key2=value2;

key3=value3;

key4=value4;

}

*/

//字典初始化方式2

NSArray*valueArray=@[@"value0",@"value1",@"value2",@"value3",@"value4"];

NSArray*keyArray=@[@"key0",@"key1",@"key2",@"key3",@"key4"];

NSDictionary*dictionary2=[[NSDictionaryalloc]initWithObjects:

valueArrayforKeys:

keyArray];

NSLog(@"%@",dictionary2);

/*

{

key0=value0;

key1=value1;

key2=value2;

key3=value3;

key4=value4;

}

*/

//字典初始化方式3

NSDictionary*dictionary3=@{

@"key0":

@"value0",

@"key1":

@"value1",

@"key2":

@"value2",

@"key3":

@"value3",

@"key4":

@"value4"

};

NSLog(@"%@",dictionary3);

/*

{

key0=value0;

key1=value1;

key2=value2;

key3=value3;

key4=value4;

}

*/

//调用NSDictionary静态方法生成字典

NSDictionary*dictionary4=[NSDictionarydictionaryWithObject:

@"value0"forKey:

@"key0"];

NSLog(@"%@",dictionary4);

/*

{

key0=value0;

}

*/

NSDictionary*dictionary5=[NSDictionarydictionaryWithObjects:

valueArrayforKeys:

keyArray];

NSLog(@"%@",dictionary5);

/*

{

key0=value0;

key1=value1;

key2=value2;

key3=value3;

key4=value4;

}

*/

NSDictionary*dictionary6=[NSDictionarydictionaryWithObjectsAndKeys:

@"value0",@"key0",@"value1",@"key1",@"value2",@"key2",@"value3",@"key3",@"value4",@"key4",nil];

NSLog(@"%@",dictionary6);

/*

{

key0=value0;

key1=value1;

key2=value2;

key3=value3;

key4=value4;

}

*/

}

∙字典基本常用用法

voidarrayTest6()

{

NSDictionary*dictionary1=[[NSDictionaryalloc]initWithObjectsAndKeys:

@"value0",@"key0",

@"value1",@"key1",

@"value2",@"key2",

@"value3",@"key3",

@"value4",@"key4",

@"value4",@"key5",

nil];

NSLog(@"%@",dictionary1);

/*

{

key0=value0;

key1=value1;

key2=value2;

key3=value3;

key4=value4;

key5=value4

}

*/

NSLog(@"%ld",dictionary1.count);

/*5*/

//输出特定元素

NSLog(@"%@",dictionary1[@"key0"]);

NSLog(@"%@",[dictionary1objectForKey:

@"key0"]);

/*value0*/

//获取所有key

NSLog(@"%@",dictionary1.allKeys);

/*

key3,

key1,

key4,

key2,

key0

*/

//获取所有value

NSLog(@"%@",dictionary1.allValues);

/*

value3,

value1,

value4,

value2,

value0

*/

//获取特定value对应的所有key

NSLog(@"%@",[dictionary1allKeysForObject:

@"value4"]);

/*

key4,

key5

*/

//分别获取key对应的value,对于不存在的key,返回"notfound"

NSLog(@"%@",[dictionary1objectsForKeys:

@[@"key0",@"key1",@"key8"]notFoundMarker:

@"notfound"]);

/*

value0,

value1,

"notfound"

*/

NSDictionary*dictionaryOther=@{@"key0":

@"value0"};

BOOLresult=[dictionary1isEqualToDictionary:

dictionaryOther];

NSLog(@"%hhd",result);

/*0*/

//保存到本地文件

[dictionary1writeToFile:

@"/Users/new/Desktop/dictionary.txt"atomically:

YES];

/*

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEplistPUBLIC"-//Apple//DTDPLIST1.0//EN"":

//

key0

value0

key1

value1

key2

value2

key3

value3

key4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1