【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray

原创 2015年11月18日 15:06:21

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

一、NSArray的介绍和基本使用

1)什么是NSArray?

NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的弊端

int array[4] = {10, 89, 27, 76};

只能存放一种类型的数据.(类型必须一致) 不能很方便地动态添加数组元素、不能很方便地动态删除数组元素(长度固定)

2)NSArray的使用注意

只能存放任意OC对象, 并且是有顺序的

不能存储非OC对象, 比如int\float\double\char\enum\struct等

它是不可变的, 一旦初始化完毕后, 它里面的内容就永远是固定的, 不能删除里面的元素, 也不 能再往里面添加元素


<span style="font-size:14px;">//
//  main.m
//  NSArray的介绍和使用
//
//  Created by Brisinga on 15/11/18.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
      
        //1.创建一个空数组
        NSArray *arr1 = [NSArray array];
        //2.创建数组,只有一个元素
        NSArray *arr2 = [NSArray arrayWithObject:@"1"];
        //3.创建数组,有多个元素
        NSArray *arr3 = [NSArray arrayWithObjects:@"1",@"2", nil];
        //4.调用对象方法。创建数组
        NSArray *arr4 =[[NSArray alloc] initWithObjects:@1,[NSNull null],@3, nil];
        //5.用一个数组创建另外一个数组
        NSArray *arr5 = [NSArray arrayWithArray:arr1];
    }
    return 0;
}
</span>

二、NSArray的常用用法


<span style="font-size:14px;">//
//  main.m
//  NSArray的常用用法
//
//  Created by Brisinga on 15/11/18.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //定义一个数组
        NSArray *arr = [NSArray arrayWithObjects:@"one",@"two",@3,@"4",nil];
        
        //获取数组的长度
        NSUInteger count = arr.count;
        //根据下标获取对应的对象
        NSLog(@"%@",[arr objectAtIndex:3]);
        //返回元素的下标
        NSLog(@"%ld",[arr indexOfObject:@"4"]);
        //数组是否包含某一个元素
        BOOL c = [arr containsObject:@3];
        NSLog(@"%d",c);
        //用简化的方式来定义数组
        NSArray *arr2 = @[@"1",@"2",@3,@"four"];
        //用简化的方式访问数组元素
        NSLog(@"%@",arr2[2]);
        
    }
    return 0;
}
</span>

三、NSArray的遍历


<span style="font-size:14px;">//
//  main.m
//  NSArray的遍历
//
//  Created by Brisinga on 15/11/18.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

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 (NSString *str in arr) {
            NSLog(@"%@",str);
        }
        
        //方法三 用block
        [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            if (idx==3) {
                *stop = YES;  //YES的时候停止
            }else{
                NSLog(@"%ld,%@",idx,obj);
            }
        }];
        
    }
    return 0;
}
</span>

四、NSArray读写文件


<span style="font-size:14px;">//
//  main.m
//  NSArray读写文件
//
//  Created by Brisinga on 15/11/18.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //定义一个数组
        NSArray *arr = [NSArray arrayWithObjects:@"one",@"zbz",@"cgx",@"sb",nil];
        
        //把数组写入到文件中
        BOOL isWrite = [arr writeToFile:@"/Users/Brisinga/Desktop/a.plist" atomically:YES];
        
        //读取文件信息到数组
        NSArray *arr2 = [NSArray arrayWithContentsOfFile:@"/Users/Brisinga/Desktop/a.plist"];
        NSLog(@"%@",arr2);
    }
    return 0;
}
</span>

五、NSArray与字符串


1.把数组元素连城一个字符串

2.把一个字符串分割成多个元素并放在同一个数组中

<span style="font-size:14px;">//
//  main.m
//  NSArray与字符串
//
//  Created by Brisinga on 15/11/18.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //定义一个数组
        NSArray *arr = @[@1,@2,@3,@4];
        //需求 把数组中的元素用“-”连接起来:1-2-3-4
        NSString *str = [arr componentsJoinedByString:@"-"];
        NSLog(@"%@",str);
        
        //2把一个字符串分割成数组
        arr = [str componentsSeparatedByString:@"-"];
        NSLog(@"%@",arr[2]);
        NSLog(@"%@",[arr firstObject]);
        NSLog(@"%@",[arr lastObject]);
        
        //应用分割400-800-12580#400-808-11200
        NSString *str1 = @"400-800-12580#400-808-11200";
        NSArray *arr1 = [str1 componentsSeparatedByString:@"#"];
        NSArray *arr2 = [[arr1 firstObject] componentsSeparatedByString:@"-"];
        NSLog(@"%@",arr2);
        NSArray *arr3 = [arr1[1] componentsSeparatedByString:@"-"];
        NSLog(@"%@",arr3);
        
    }
    return 0;
}
</span>

六、NSMutableArray的基本使用

NSMutableArray是NSArray的子类

NSArray是不可变的, 一旦初始化完毕后, 它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素

NSMutableArray是可变的, 随时可以往里面添加\更改\删除元素


<span style="font-size:14px;">//
//  main.m
//  NSMutableArray的基本使用
//
//  Created by Brisinga on 15/11/18.
//  Copyright © 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //1)创建数组
            //i.空数组
        NSMutableArray *arr1 = [NSMutableArray array];
            //ii.创建的时候初始化一个元素
        NSMutableArray *arr2 = [NSMutableArray arrayWithObject:@1];
            //iii.创建的时候出事话多个元素
        NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@1,@2,@3, nil];
            ///iv.创建一个数组并且制定长度
        NSMutableArray *arr4 = [NSMutableArray arrayWithCapacity:5];
        //2) 添加元素
        [arr1 addObject:@1];
        [arr1 insertObject:@2 atIndex:1];
        //3) 删除元素
        [arr1 removeObject:@2];  //根据对象删除
        [arr1 removeObjectAtIndex:0]; //根据下标删除
        [arr1 removeAllObjects]; //全部删除
        NSLog(@"%@",arr1);
        //4) 修改元素
        [arr3 replaceObjectAtIndex:1 withObject:@5];
        arr3[2] = @6;
        //5) 查找元素
        BOOL isSearch = [arr3 containsObject:@6];
        //交换元素
        [arr3 exchangeObjectAtIndex:2 withObjectAtIndex:0];
        
    }
    return 0;
}
</span>



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员--OC学习篇之Foundation框架中的NSArray对象和NSMutableArray对象

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSArray类 [objc] view plaincopy...
  • kkii180
  • kkii180
  • 2015年08月25日 17:21
  • 289

黑马程序员—Foundation框架之NSArray与NSMutableArray

一、NSArray的理解 1、NSArray是OC中的数组类, 开发中建议尽量使用NSArray替代C语言中的数组,因为C语言数组存在以下弊端: 1)只能存放一种类型的数据(类型必须一致) 2)不能很...

黑马程序员--OC自学笔记---10Foundation、NSString、NSURL、NSRange、NSArray、NSMutableArray、NSDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.   Foundation框架简介: 1)   框架是由许多类、方法、函数、...

黑马程序员——Foundation框架——NSArray和NSMutableArray

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 接下来复习的内容是Foundation中使用频率很高的NSArray和NSMutableArra...
  • Elors
  • Elors
  • 2015年06月09日 16:36
  • 294

黑马程序员---Foundation常用类之NSArray/NSMutableArray

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

黑马程序员 OC语言 - 7 结构体、NSString、NSArray、NSMutableArray

若排版有错误,请查看PDF版:http://pan.baidu.com/s/1bnzW6jt

【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSDictionary介绍 1)什么是NSDictionary NSDictio...

【黑马程序员】OC-Foundation框架—NSString和NSRange

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSString类介绍和基本使用 1、什么是NSString? 一个NSString对...

黑马程序员——OC基础---Foundation<NSArray补充,NSMultableArray,NSDictionary>

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——第一讲 NSArray 读写文件1 NSArray 数据写入到文件顾名思义:就是把NSArray中内容写入到...

黑马程序员--ios基础--oc-foundation--NSString,NSArray与计算代码行数的练习

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------  1. 结构体 在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结...
  • yuanptt
  • yuanptt
  • 2015年05月14日 18:18
  • 385
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray
举报原因:
原因补充:

(最多只允许输入30个字)