黑马程序员-[OC语言] 第七篇:foundation框架之NSArray、NSDitctionary 基本用法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------

OC 加强第四天-NSArray及NSDictionary总结:

1. NSArray的介绍和使用:
1)特点:一旦创建成功,内容不可改变;而且只能存放OC对象;
2)NSarray直接使用NSlog( )作为字符串输出的时候是小括号扩起来的形式;
3)NSarray中不能存储nil,因为NSarray 认为nil是数组的结束(nil是数组元素结束的标记)。nil就是0,0就是基本数据类型,不能存放到NSarray中。
4)只能存放任意的OC对象,并且是有顺序的,不能存放非OC对象,如基本数据类型。
5)创建数组的五种方法:
1)创建一个空数组
<span style="font-size:18px;">NSArray *arr1 = [NSArray array];</span>

2)创建数组,只有一个元素

<span style="font-size:18px;">NSArray *arr2 = [NSArray arrayWithObject:@"1"];</span>

3)创建数组,有多个元素

 nil 表示数组赋值结束,常见写法:
<span style="font-size:18px;"><span style="font-size:18px;">NSArray *arr3 = [NSArray arrayWithObjects:@"one",@"two",@1, nil];
 NSLog(@"arr3 = %@",arr3);</span></span>

4)调用对象方法,创建数组

<span style="font-size:18px;">NSArray *arr4 = [[NSArray alloc] initWithObjects:@"three",[NSNull null],@"four", nil];
NSLog(@"arr4 = %@",arr4);</span>

5)用一个数组可以创建另外一个数组

<span style="font-size:18px;">NSLog(@"arr5 = %@“,arr5);</span>



2.NSarray的常见用法:

1)获取数组的长度  count获取数组的元素的个数
<span style="font-size:18px;">NSLog(@"%ld",arr3.count);</span>

2)根据下标,获取下标对应的对象

<span style="font-size:18px;">NSLog(@"%@",[arr3 objectAtIndex:3]);</span>
3)返回元素的下标
<span style="font-size:18px;">NSUInteger loc = [arr3 indexOfObject:@"three"];
NSLog(@"%ld",loc);</span>
4)数组中是否包含了某个元素
<span style="font-size:18px;">[arr3 containsObject:@“four”]  // 此时可以作为判断条件使用;</span>
5)简化方式定义数组:
<span style="font-size:18px;">NSArray *arr = @[@“1",@"one",@"3",@4,@"ONE"];</span>
6)用简化方式访问数组元素的值: str = arr[1];

3.array的三种方法遍历:
<span style="font-size:18px;"><span style="font-size:18px;">NSArray *arr = @[@"one",@"two",@"three",@"four"];</span></span>
1) 普通的方式,通过下标访问  
<span style="font-size:18px;"> for (int i=0; i<arr.count; i++) {
            NSLog(@"-> %@",arr[i]);
        }</span>
2) 快速枚举法 for循环的增强形式 
<span style="font-size:18px;">for (NSString * str in arr) {
             NSLog(@"---> %@",str);
        }</span>
3) 使用block的方式,进行访问
<span style="font-size:18px;">[arr enumerateObjectsUsingBlock:^(id obj(数组元素), NSUInteger idx(元素下标), BOOL *stop)];
{
            if(idx == 2){
                *stop = YES;  //停止  // break;
            }else{

               NSLog(@"idx = %ld,obj = %@“,idx,obj);}</span>

4.NSarray读写文件:

1)写文件格式:

<span style="font-size:18px;"><span style="font-size:18px;">BOOL isWrite =  [array writeToFile:@"/Users/zhaoxiaohu/Desktop/arr.xml" atomically:YES];     
   if(isWrite){
NSLog(@"写入成功");

}</span></span>
2)读文件格式:从文件中,读取一个数组信息
<span style="font-size:18px;"><span style="font-size:18px;">NSArray *readArr = [NSArray arrayWithContentsOfFile:@"/Users/zhaoxiaohu/Desktop/arr.xml"];

 NSLog(@"readArr = %@",readArr);</span></span>
3)这种方式可以读写.plist 文件/.XML文件.

5.NSarray与字符串;
1)把数组分割成一个字符串:格式为:
NSArray *arr = @[@1,@2,@3,@4];
NSString *str = [arr  componentsJoinedByString:@“-"];
2)把字符串拆分成一个数组方法:
 NSString *str2 = @"400-800-12580";
NSArray *arr2 = [str2 componentsSeparatedByString:@“-"];



6.NSmutableArrayde 基本使用:
1)创建数组的四种方法:
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) 交换元素    
NSMutableArray *arr5 =[NSMutableArray arrayWithObjects:@1,@2,@3,@4,@5, nil];
        // 可以交换数组元素
     [arr5 exchangeObjectAtIndex:0 withObjectAtIndex:4];
        NSLog(@“%@",arr5);


7.NSDictionary介绍:

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);  
        }];
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值