Oc-语句总结(2)--NSArray

1.空数组的创建
     NSArray *arr =  [ NSArray array ];

2.创建一个元素的数组
     语法:[NSArray arrayWithObject:p];
            Person * p = [[ Person alloc ] init ];
              NSArray *arr1 = [NSArray arrayWithObject:p];
               // %@ 打印数组,系统会自动遍历数组,并把所有数组打印出来
              NSLog(@"%@",arr1);

3.创建多个元素的数组
      语法:[ NSArray arrayWithObjects:@"zhengyang",@"cool", @"cool",nil];
               // 创建多个元素的数组, nil 代表数组结束
                NSArray *arr =[ NSArray arrayWithObjects : @"zhengyang" , @"cool" , @"cool" , nil ];
               NSLog(@"%@",arr);

4.数组内容的复制
       语法: NSArray *arr1 = [NSArray arrayWithArray:arr];
                 NSArray *arr =[ NSArray arrayWithObjects : @"zhengyang" , @"cool" , @"cool" , nil ];
                 // arr 里的内容原封不动的复制到 arr1 当中
                  NSArray *arr1 = [ NSArray arrayWithArray :arr];
                 NSLog(@"%@",arr1);

5.获得数组的长度
        语法:不是length 就是 count  是一个只读的属性(NSUInteger)
                NSArray *arr =[ NSArray arrayWithObjects : @"zhengyang" , @"cool" , @"cool" , nil ];
                NSUInteger count =  arr. count ;
                NSLog(@"%lu",count);

6.获得指定元素的位置
       语法: [arr objectAtIndex:1];
                 NSArray *arr =[ NSArray arrayWithObjects : @"zhengyang" , @"cool" , @"cool" , nil ];
                // 方法 1-->常用方法
                  NSString *str = arr[ 0 ];
                  NSLog ( @"%@" ,str);
                 // 方法 2
                 NSString *str1 = [arr objectAtIndex : 1 ];
                NSLog(@"%@",str1);

7.判断数组中是否包含某个元素
       1.语法:BOOL result = [arr containsObject:@"cool"];//为包含的元素    [布尔类型]
               NSArray *arr =[ NSArray arrayWithObjects : @"zhengyang" , @"cool" , @"cool" , nil ];
                 // 判断这个数组中包含某个元素
               BOOL result = [arr containsObject:@"cool"];// 为包含的元素
              if (result) { NSLog(@" 数组中包含这个元素 " );
               } else { NSLog ( @" 数组中不包含这个元素 " );}
               输出结果:数组中包含这个元素
        
       2.用法:获取数组中首尾元素
          语法:
                  // 获得数组中第一个元素
                     NSString *str = [arr firstObject ];
                    // 获得最后一个元素
                    NSString *str1 = [arr lastObject];
         
         3.获取数组中元素位置(角标)
            语法1: NSUInteger index =  [arr indexOfObject:@"cool"];
                    NSArray *arr =[ NSArray arrayWithObjects : @"zhengyang" , @"cool" , @"cool" , nil ];
                       
// 获取数组中元素角标
                        
NSUInteger index =  [arr indexOfObject : @"cool" ];
                        
NSLog ( @"index = %lu" ,index);
                        
// 如果找不到返回 NS NotFound-( 9223372036854775807)
                         输出结果: index = 1
            语法2: NSUInteger index1 =  [arr indexOfObject:@"cool" inRange:NSMakeRange(0,1)];
               作用:在指定范围内查找数组元素


8.NSArray的简写❤❤❤
               简写格式: // 简写不需加 nil  @[ 元素 1 ,元素 2 ,元素 3.....]
            形式: NSArray *arr = @[ @"ha" , @"haha" , @"hahaha" , @"hahahaha" ] ;
  
9.NSArray 的遍历❤❤❤
    第1种情况(for)
    用法:通过角标来遍历
        例: NSArray *arr = @[ @"ha" , @"haha" , @"hahaha" , @"hahahaha" ] ;
              
// 通过角标遍历
              
for ( int i = 0 ; i<arr. count ; i++) {
              
NSLog ( @"%@" ,arr[i]);}}
 
       第2种情况(增强for循环)—forin
        用法:增强for循环遍历数组
          例: NSArray *arr = @[ @"ha" , @"haha" , @"hahaha" , @"hahahaha" ] ;
               for ( NSString *str in arr) {
              NSLog(@"%@",str);}

第3种情况:block遍历
           用法:[arr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {}]
               例: NSArray *arr = @[ @"ha" , @"haha" , @"hahaha" , @"hahahaha" ] ;
               // 无返回值, obj 代表数组中的每一个元素   idx 代表是对应的角标 BOOL* stop 控制遍历结束的 YES 代表数组结束
               [arr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
               //id obj        NSUIteger idx           BOOL* stop
                NSLog ( @"%@" ,obj);           // 遍历数组
                NSLog(@"%lu",idx);           // 遍历角标
                if (idx==2) {*stop = YES;}}];// 控制循环结构

10.NSArray读写文件(.plist文件)
      1.用法:写入文件
         语法:BOOL result = [ arr writeToFile:@"/Users/mac/Desktop/1.plist"atomically:YES];(布尔类型接收)
         例: NSArray *arr = @[ @"ha" , @"haha" , @"hahaha" , @"hahahaha" ] ;
              // arr 写文件   arr writeToFile:  文件路径   atomically:YES   ----> 判断是否写入成功
             
BOOL result = [ arr writeToFile : @"/Users/mac/Desktop/1.plist" atomically : YES ];
             
if (result) { NSLog ( @" 写入成功 " );}
             else{{NSLog(@" 写入失败 " );}}
       2.用法:读文件
           语法: NSArray *arr1 = [NSArray arrayWithContentsOfFile:@"/Users/mac/Desktop/1.plist"];
              例: NSArray *arr1 = [ NSArray arrayWithContentsOfFile : @"/Users/mac/Desktop/1.plist" ];
                    NSLog(@"%@",arr1);       

   诀窍:写文件,永远都是writeToFile(对象方法)
              读文件,永远都是xxxxWithContentsOfFile  (类方法)

11.NSArray 与字符串❤❤❤
    1.语法: NSString *str  = [arr componentsJoinedByString : @"-" ];
        用途:把数组元素连接成一个字符串
        例:   NSArray *arr = @[ @"ha" , @"haha" , @"hahaha" , @"hahahaha" ] ;
                 // 参数是用来连接元素的字符串
                NSString *str  = [arr componentsJoinedByString : @"-" ];
               NSLog(@"%@",str);

   ❤2.语法: NSString *str  = [arr componentsJoinedByString : @"-" ];
          用途:把字符串切割成数组
             例: NSString *str = @"400-800-8802" ;
                  // 将字符串切割成数组,参数是用什莫来切割
                 
NSArray *arr = [str componentsSeparatedByString : @"-" ];
                 NSLog(@"%@",arr);


12可变数组NSMutableArray
   方法:基本与NSArray相同,一般把NSArray改成NSMutableArray就可以
   详解:    NSMutableArray *arr = [ NSMutableArray   array ];
                  ❤ 追加
                     [arr addObject : @"a" ];
                     [arr
addObject : @"aa" ];
                  ❤ 新建数组
                  NSMutableArray *arr1 = [ NSMutableArray   arrayWithObjects : @"bb" , @"bbb" , nil ];
                   arr1 的元素复制到 arr 里面去 ,arr 的内容在前
                   [arr addObjectsFromArray :arr1];
                   NSLog(@"%@",arr1);
                  插入
                   [arr insertObject : @"cc" atIndex : 1 ];
                    NSLog(@"%@",arr);
                  删除最后一个元素
                    NSLog ( @"%@" ,arr);
                  ❤ 清空所有元素
                   [arr removeAllObjects ];
                  替换 1.--- 将角标为 (   ) 替换成 (  )
                  [arr1 replaceObjectAtIndex : 0 withObject : @"yy" ];
                  
NSLog ( @"%@" ,arr1);
                  ❤ 替换 2-- 简便方法
                    arr1[ 0 ] = @"hh" ;
                    NSLog(@"%@",arr1);
                  将角标为 0 的元素与角标为 1 的元素交换
                   [arr1 exchangeObjectAtIndex: 0 withObjectAtIndex: 1 ];
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值