您的位置:首页 > 职场人生

黑马程序员———Objctive-C———【NSArray不可变数组、NSMutableArray可变数组】

2015-09-09 13:25 459 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

——————————————————————————————————————————————————————————————————

NSArray的常用方法

- (NSUInteger)count; 获取集合元素个数

- (id)objectAtIndex:(NSUInteger)index; 获得index位置的元素

- (BOOL)containsObject:(id)anObject; 判断是否包含元素

- (NSUInteger)indexOfObject:(NSString *)string; 获取元素的位置

快速创建Array数组

Array array=@[@"1",@"2",@"3",@4];

用简化的方式访问数组元素

array[3]; //NSString str=array[3]; str=4


NSArray的遍历方法

(1)下标遍历

方法:普通的for循环方法

(2)快速遍历

方法:

NSArray array=@[@"one",@"two",@"three"];

for(NSString * str in array){

NSLog(@"%@ ",str);

}

(3)使用block遍历

方法:

参数id obj:当前对象

参数NSUInteger idx:当前对象的位置

参数BOOL *stop:是否停止

arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){

if(idx==2){

*stop=YES; //只打印前两个元素,当位置为2时,break

}else{

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

}

}


NSArray读写文件

写入数据和读取数据

NSArray *array=[NSArray arrayWithObjects:@"one",@"two",@"three",@"foure",nil];

//把NSArray中的内容,写入到文件arr.plist中

BOOL isWrite=[array writeToFile:@"/Users/zhaoxiaohu/Desktop/arr.plist" atomically:YES];

if(isWrite){

NSLog("写入成功");

}

//读取

NSArray *readArray=[NSArray arrayWithContentsOfFile:@"/Users/zhaoxiaohu/Desktop/arr.plist"];

NSLog(@"%@",readArray);


NSArray与字符串

(1)把数组元素链接成字符串

components:组成、构成

separator:分离器

- (NSString *)componentsJoinedByString:(NSString *)separator;

这是NSArray的方法,用separator作拼接符将数组元素拼接成一个字符串

(2)-(1)把一个字符串分割成数组

NSString *str2=@"400-800-1258";

NSArray *arr2=[str2 componentsSeparatedByString:@"-"];

NSLog(@"%@",[arr2 firstObject]);

NSLog(@"%@",[arr2 lastObject]);

NSLog(@"%@",arr2[1]);

(2)-(2)

str2=@"400-800-12580#400-888-11200";

NSArray *arr3=[str2 componentsSeparatedByString:@"#"];

NSLog(@"arr3=%@",arr3); //400-800-12580 400-888-11200

//第一个电话的每一部分

NSArray *arr4=[[arr3 firstObject] componentsSeparatedByString:@"-"];

NSLog(@"arr4=%@",arr4); //400 800 12580


NSMutableArray介绍、使用

(1)空数组

NSMutableArray *arr=[NSMutableArray array];

(2)创建数组的时候,初始化一个元素

NSMutableArray *arr2=[NSMutableArray arrayWithObject:@"one"];

(3)创建数组的时候,初始化多个元素

NSMutableArray *arr3=[NSMutableArray arrayWithObjects:@"one",@"two",@3,nil];

(4)创建一个数组,并且指定长度

NSMutableArray *arr4=[NSMutableArray arrayWithCapacity:(NSUInteger)];

Capacity:容量

(5)增加元素

- (void)addObject:(id)object;

(5)-(1)在指定的位置插入元素

- (void)addObject:(id)object atIndex:(NSUInteger)idx;

(6)删除元素

根据对象内容删除

removeObject:(id)object;

根据对象下标删除

removeObjectAtIndex:(NSUInteger)idx;

删除最后一个元素

- (void)removeLastObject;

删除所有元素

- (void)removeAllObjects;

删除range范围内的所有元素

- (void)removeObjectsInRange:(NSRange)range;

(7)修改元素

快捷方法

arr[0]=@"one";

用anObject替换index位置对应的元素

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

(8)查找元素

- (BOOL)containsObject:(id)object;

(9)交换元素(该方法很重要)

- (void)exchangeObjectAtIndex:(NSUInteger) withObjectAtIndex:(NSUInteger);

(10)NSMutable使用注意事项

使用该种方式创建的数组永远是不可变的

NSMutableArray *array=@[@"ONE",@"TWO"...];

[array addObject:@"Peter"];


NSDictionary介绍、使用

NSDictionary的创建、初始化

(1)创建空字典(无意义,因为NSDictionary不可变,一旦创建,内容不能修改)

NSDictionary *dict1=[NSDictionary dictionary];

(2)创建只有一组键值对的地段

NSDictionary *dict2=[NSDictionary dictionaryWithObject:(id) forKey:(id< NSCopying>)];

eg:NSDictionary *dict2=[NSDictionary dictionaryWithObject:@"张三" forKey:@"zs"];

(3)创建多组键值对的字典

NSDictionary *dict3=[NSDictionary dictionaryWithObjectsAndKeys:(id),nil];

eg:NSDictionary *dict3=[NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"k1",@"value2",@"k2",nil];

注意1:key值和value值都必须是对象类型

注意2:如果key值重复,不会报错,只能保存先定义的键值对

(4)快速创建字典

格式:@{key值:value值...};

eg:NSDictionary *dict4=@{@"zs":@"zhangsan",@"ls":@"lisi"};
获取键值对数目、根据key获取value

- (NSUInteger)count; //获取不重复的键值对的数目

- (id)objectForKey:(id)aKey;
遍历

(1)使用forin

第1步:获取所有的key

第2步:根据key获取value

for(NSString *key in dict4){

NSLog(@"key=%@,value=%@",key,[dict4 objectForKey:key]);

}

(2)使用block

[dict4 enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){

NSLog(@"%@=%@",id,obj);

}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: