IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDiWord文件下载.docx
《IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDiWord文件下载.docx》由会员分享,可在线阅读,更多相关《IOS开发之旅IOS常用数据结构NSArrayNSMutableArrayNSDictionaryNSMutableDiWord文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
(NSInteger)1]);
firstObject=%@"
array1.firstObject);
//获取第一个元素
/*firstObject=item1*/
lastObject=%@"
array1.lastObject);
//获取最后一个元素
/*lastObject=item4*/
//拼接数组
[array1componentsJoinedByString:
"
]);
/*item0,item1,item2,item3,item4*/
//查找元素的索引,如果包含特定元素,返回具体索引,否则返回:
9223372036854775807
%ld"
[array1indexOfObject:
item11"
//是否包含特定元素
%i"
[array1containsObject:
]==TRUE?
1:
0);
/*1*/
NSArray*subArray=[array1subarrayWithRange:
NSMakeRange(1,2)];
subArray);
/*
(
item2
)
*/
//保存数组元素到本地文件,以xml格式序列化存储
[array1writeToFile:
/Users/new/Desktop/array.txt"
atomically:
YES];
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
!
DOCTYPEplistPUBLIC"
-//Apple//DTDPLIST1.0//EN"
"
:
//
plistversion="
array>
string>
item0<
/string>
item1<
item2<
item3<
item4<
/array>
/plist>
//读取本地文件,反序列化为数组
NSArray*array2=[[NSArrayalloc]initWithContentsOfFile:
];
array2);
item0,
//判断数组元素是否相等
BOOLresult=[array1isEqualToArray:
@[@"
]];
result);
/*0*/
}
∙NSArray遍历
voidarrayTest2()
//遍历方法1
for(intindex=0;
index<
array1.count;
index++){
array1[index]);
}
item0
item1
item3
//遍历方法2
for(NSString*iteminarray1){
item);
//遍历方法3
//NSEnumerator*enumerator=[array1reverseObjectEnumerator];
//逆向遍历
NSEnumerator*enumerator=[array1objectEnumerator];
//正向遍历
NSString*item=nil;
while(item=[enumeratornextObject]){
//遍历方法4
[array1enumerateObjectsUsingBlock:
^(idobj,NSUIntegeridx,BOOL*stop){
%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:
)];
1,
11,
21,
3,
5,
51
//排序方法2,代码块
NSArray*array3=[array1sortedArrayUsingComparator:
^NSComparisonResult(idobj1,idobj2){
return[obj1compare:
obj2];
array3);
//排序方法3,自定义排序描述符
NSArray*originalArray=@[
@{@"
page_no"
27"
age"
@24},
@"
@23},
@21},
@25},
@15},
12"
@19},
23"
@29},
@22},
2"
@30},
17"
@33}
];
NSSortDescriptor*alphaNumSD=[NSSortDescriptorsortDescriptorWithKey:
ascending:
YEScomparator:
^NSComparisonResult(NSString*string1,NSString*string2){
return[string1compare:
string2options:
NSNumericSearch];
NSSortDescriptor*dataNumSD=[NSSortDescriptorsortDescriptorWithKey:
^NSComparisonResult(iddata1,iddata2){
return[data1compare:
data2];
NSArray*sortedArray=[originalArraysortedArrayUsingDescriptors:
@[alphaNumSD,dataNumSD]];
sortedArray);
{
age=15;
=1;
},
age=21;
age=23;
age=25;
age=30;
=2;
age=22;
=3;
age=19;
=12;
age=33;
=17;
age=29;
=23;
age=24;
=27;
//排序方法4,自定义比较方法
Person*person1=[[Personalloc]initWithFirstName:
hello"
lastName:
world"
age:
35];
Person*person2=[[Personalloc]initWithFirstName:
abc"
def"
25];
Person*person3=[[Personalloc]initWithFirstName:
cal"
kdl"
22];
NSArray*personArray=@[person1,person2,person3];
NSArray*tempArray=[personArraysortedArrayUsingSelector:
@selector(comparePeople:
tempArray);
firstName:
abc,lastName:
def,age:
25"
cal,lastName:
kdl,age:
22"
hello,lastName:
world,age:
35"
∙NSMutableArray
NSMutableArray继承NSArray,所以NSArray的所有特性NSMutableArray都有,在此基础上,NSMutableArray主要新增了添加、删除、更新、插入等特性,如下代码演示:
voidarrrayTest4()
NSMutableArray*mutableArray=[[NSMutableArrayalloc]initWithObjects:
nil];
mutableArray);
//添加元素
[mutableArrayaddObject:
item5"
item4,
item5
//插入元素
[mutableArrayinsertObject:
inserteditem"
atIndex:
(NSInteger)1];
//删除元素
[mutableArrayremoveObject:
//更新元素
[mutableArrayreplaceObjectAtIndex:
(NSInteger)5withObject:
replacedItem"
replacedItem
//删除所有元素
[mutableArrayremoveAllObjects];
mutableArray.count);
∙NSDictionary
∙字典初始化
voidarrayTest5()
//字典初始化方式1
NSDictionary*dictionary1=[[NSDictionaryalloc]initWithObjectsAndKeys:
value0"
key0"
@"
value1"
key1"
value2"
key2"
value3"
key3"
value4"
key4"
nil];
dictionary1);
key0=value0;
key1=value1;
key2=value2;
key3=value3;
key4=value4;
//字典初始化方式2
NSArray*valueArray=@[@"
NSArray*keyArray=@[@"
NSDictionary*dictionary2=[[NSDictionaryalloc]initWithObjects:
valueArrayforKeys:
keyArray];
dictionary2);
//字典初始化方式3
NSDictionary*dictionary3=@{
};
dictionary3);
//调用NSDictionary静态方法生成字典
NSDictionary*dictionary4=[NSDictionarydictionaryWithObject:
forKey:
dictionary4);
NSDictionary*dictionary5=[NSDictionarydictionaryWithObjects:
dictionary5);
NSDictionary*dictionary6=[NSDictionarydictionaryWithObjectsAndKeys:
dictionary6);
∙字典基本常用用法
voidarrayTest6()
key5"
key5=value4
dictionary1.count);
/*5*/
//输出特定元素
dictionary1[@"
[dictionary1objectForKey:
/*value0*/
//获取所有key
dictionary1.allKeys);
key3,
key1,
key4,
key2,
key0
//获取所有value
dictionary1.allValues);
value3,
value1,
value4,
value2,
value0
//获取特定value对应的所有key
[dictionary1allKeysForObject:
key5
//分别获取key对应的value,对于不存在的key,返回"
notfound"
[dictionary1objectsForKeys:
key8"
]notFoundMarker:
value0,
NSDictionary*dictionaryOther=@{@"
};
BOOLresult=[dictionary1isEqualToDictionary:
dictionaryOther];
%hhd"
//保存到本地文件
[dictionary1writeToFile:
/Users/new/Desktop/dictionary.txt"
dict>
key>
key0<
/key>
value0<
key1<
value1<
key2<
value2<
key3<
value3<
key4<