NSArray , NSDictionary 的用法...
2015-12-08 16:35
288 查看
重点:数组中是否包含某个元素.快速创建.简化访问.
NSArray数组遍历方法:
int main(int argc, const char * argv[]) {
@autoreleasepool {
//定义一个数组
NSArray *arr = @[@"one",@"two",@"three",@"four"];
//对数组进行遍历
//1) 普通的方式,通过下标访问
for (int i=0; i<arr.count; i++) {
NSLog(@"-> %@",arr[i]);
}
//2) 快速枚举法 for循环的增强形式
for (NSString * str in arr) {
NSLog(@"---> %@",str);
}
//3) 使用block的方式,进行访问
//i. 空数组
NSMutableArray *arr1 = [NSMutableArray array];
NSLog(@"%p",arr1);
//ii.创建的时候初始化一个元素
NSMutableArray *arr2 = [NSMutableArray arrayWithObject:@"one"];
//iii.创建数组的时候,初始化多个元素
NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"one",@"two",@3,nil];
//IV. 创建一个数组,并且指定长度,
NSMutableArray *arr4 = [NSMutableArray arrayWithCapacity:5];
//2) 添加元素
[arr1 addObject:@"fengjie"];
NSLog(@"%p",arr1);
//插入元素到指定的位置
[arr1 insertObject:@"zbz" atIndex:0];
//3) 删除元素
//根据对象内容删除
// [arr1 removeObject:@"zbz"];
//根据位置删除
// [arr1 removeObjectAtIndex:1];
//全部删除
[arr1 removeAllObjects];
//4) 修改元素
//two--> four
[arr3 replaceObjectAtIndex:1 withObject:@"four"];
//four--> five
//更加简单地方法
arr3[1] = @"five";
NSLog(@"%@",arr3);
//5) 查找元素
BOOL isSearch =[arr3 containsObject:@"four"];
NSLog(@"%d",isSearch);
//6) 交换元素
// 1 2 3 4 5
// 5 2 3 4 1
//temp= a[0];
//a[0]= a[len-1];
//a[len-1]= temp;
NSMutableArray *arr5 =[NSMutableArray arrayWithObjects:@1,@2,@3,@4,@5, nil];
// 可以交换数组元素
[arr5 exchangeObjectAtIndex:0 withObjectAtIndex:4];
NSLog(@"%@",arr5);
}
//NSDictionary 不可变的,一旦创建,内容就不能添加\删除(不能改动)
//1)创建空字典
NSDictionary *dict1 = [NSDictionary dictionary];
//key value
//zs ---> 张三
//ls ---> 李四
//mz ---> 码子
//2)创建只有一组键值对的字典
NSDictionary *dict2 = [NSDictionary dictionaryWithObject:@"zhangsan" forKey:@"zs"];
//3)创建多组键值对的字典
//value值,key值
NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"k1",@"value2",@"k2", nil];
//注意;
// 字典的key值和value值,都必须是对象
//4)快速创建一个字典
//@{,,key值:value值,,,};
//key值不能重复:
//如果重复了,也不会报错
//如果重复了,最后添加的将不能够保存到字典中
NSDictionary *dict4 = @{@"zs":@"zhaosi",@"zs":@"zhangsan",@"ls":@"lisi",@"bz":@"banzhang"};
NSLog(@"%@",dict4); //以%@格式打印字典,控制台输出一个{
}
//5)获取字典的长度
NSLog(@"%lu",dict4.count);
//6)根据key值取出value值
// zs zhaosi
// key
NSString *str = [dict4 objectForKey:@"zs"];
NSLog(@"str = %@",str);
//7)字典的遍历问题
//第一步:获取所有的key
//第二步:根据key获取value
// for(NSString *key in dict4){
// NSLog(@"key = %@,value =%@",key,[dict4 objectForKey:key]);
// }
// key value stop
[dict4 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
NSLog(@"%@ --> %@",key,obj);
}];
NSDictionary的简写形式及文件操作
//1)用简写形式定义一个字典
NSDictionary *dict = @{@"zbz":@"zhangbozhi",@"cgx":@"chenguanxi",@"xzmly":@"hello"};
//2)用简写形式,获取key对应的value
NSLog(@"%@",dict[@"zbz"]);
//3)把字典保存到文件中
// BOOL isWrite = [dict writeToFile:@"/Users/zhaoxiaohu/Desktop/dict.plist"atomically:YES];
// if (isWrite) {
// NSLog(@"写入成功");
// }
//4)从文件中读取字典
NSDictionary *readDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/zhaoxiaohu/Desktop/dict.plist"];
NSLog(@"readDict = %@",readDict);
}
NSArray数组遍历方法:
int main(int argc, const char * argv[]) {
@autoreleasepool {
//定义一个数组
NSArray *arr = @[@"one",@"two",@"three",@"four"];
//对数组进行遍历
//1) 普通的方式,通过下标访问
for (int i=0; i<arr.count; i++) {
NSLog(@"-> %@",arr[i]);
}
//2) 快速枚举法 for循环的增强形式
for (NSString * str in arr) {
NSLog(@"---> %@",str);
}
//3) 使用block的方式,进行访问
//i. 空数组
NSMutableArray *arr1 = [NSMutableArray array];
NSLog(@"%p",arr1);
//ii.创建的时候初始化一个元素
NSMutableArray *arr2 = [NSMutableArray arrayWithObject:@"one"];
//iii.创建数组的时候,初始化多个元素
NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"one",@"two",@3,nil];
//IV. 创建一个数组,并且指定长度,
NSMutableArray *arr4 = [NSMutableArray arrayWithCapacity:5];
//2) 添加元素
[arr1 addObject:@"fengjie"];
NSLog(@"%p",arr1);
//插入元素到指定的位置
[arr1 insertObject:@"zbz" atIndex:0];
//3) 删除元素
//根据对象内容删除
// [arr1 removeObject:@"zbz"];
//根据位置删除
// [arr1 removeObjectAtIndex:1];
//全部删除
[arr1 removeAllObjects];
//4) 修改元素
//two--> four
[arr3 replaceObjectAtIndex:1 withObject:@"four"];
//four--> five
//更加简单地方法
arr3[1] = @"five";
NSLog(@"%@",arr3);
//5) 查找元素
BOOL isSearch =[arr3 containsObject:@"four"];
NSLog(@"%d",isSearch);
//6) 交换元素
// 1 2 3 4 5
// 5 2 3 4 1
//temp= a[0];
//a[0]= a[len-1];
//a[len-1]= temp;
NSMutableArray *arr5 =[NSMutableArray arrayWithObjects:@1,@2,@3,@4,@5, nil];
// 可以交换数组元素
[arr5 exchangeObjectAtIndex:0 withObjectAtIndex:4];
NSLog(@"%@",arr5);
}
//NSDictionary 不可变的,一旦创建,内容就不能添加\删除(不能改动)
//1)创建空字典
NSDictionary *dict1 = [NSDictionary dictionary];
//key value
//zs ---> 张三
//ls ---> 李四
//mz ---> 码子
//2)创建只有一组键值对的字典
NSDictionary *dict2 = [NSDictionary dictionaryWithObject:@"zhangsan" forKey:@"zs"];
//3)创建多组键值对的字典
//value值,key值
NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"k1",@"value2",@"k2", nil];
//注意;
// 字典的key值和value值,都必须是对象
//4)快速创建一个字典
//@{,,key值:value值,,,};
//key值不能重复:
//如果重复了,也不会报错
//如果重复了,最后添加的将不能够保存到字典中
NSDictionary *dict4 = @{@"zs":@"zhaosi",@"zs":@"zhangsan",@"ls":@"lisi",@"bz":@"banzhang"};
NSLog(@"%@",dict4); //以%@格式打印字典,控制台输出一个{
}
//5)获取字典的长度
NSLog(@"%lu",dict4.count);
//6)根据key值取出value值
// zs zhaosi
// key
NSString *str = [dict4 objectForKey:@"zs"];
NSLog(@"str = %@",str);
//7)字典的遍历问题
//第一步:获取所有的key
//第二步:根据key获取value
// for(NSString *key in dict4){
// NSLog(@"key = %@,value =%@",key,[dict4 objectForKey:key]);
// }
// key value stop
[dict4 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
NSLog(@"%@ --> %@",key,obj);
}];
NSDictionary的简写形式及文件操作
//1)用简写形式定义一个字典
NSDictionary *dict = @{@"zbz":@"zhangbozhi",@"cgx":@"chenguanxi",@"xzmly":@"hello"};
//2)用简写形式,获取key对应的value
NSLog(@"%@",dict[@"zbz"]);
//3)把字典保存到文件中
// BOOL isWrite = [dict writeToFile:@"/Users/zhaoxiaohu/Desktop/dict.plist"atomically:YES];
// if (isWrite) {
// NSLog(@"写入成功");
// }
//4)从文件中读取字典
NSDictionary *readDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/zhaoxiaohu/Desktop/dict.plist"];
NSLog(@"readDict = %@",readDict);
}
相关文章推荐
- ORA-12008
- HashedWheelTimer
- JVM GC原理
- MFC笔记8
- Logcat查看/输出日志信息
- javascript-逻辑与(&&)逻辑或(||)
- nyoj 517 最小公倍数【数学】大数处理
- 成功的背后!(给所有IT人)
- FZU1920 Left Mouse Button(dfs)
- c++中volatile关键字解释
- Jquery easyui从零单排之datagrid数据绑定
- Assembly x64 Intro - Nasm Syntax
- 用opencv检测人眼并定位瞳孔位置
- VintaSoft Imaging .NET使用教程:如何将OCR设置为只识别数字
- HttpWebRequest上传文件(Excel等)
- bootstrap的图标无法正常显示解决方法
- Java 中 静态方法与非静态方法的区别
- HttpClient使用详解
- 检查物料主数据是否重复
- 【已解决】Android 6.0找不到类、.so、.jar文件