zoukankan      html  css  js  c++  java
  • NSArray 跟 NSMutableArray 使用 区别

    NSArray 可变数组

    一、NSArray是静态数组,创建后数组内容及长度不能再修改。

    实例:

    //用arrayWithObjects初始化一个不可变的数组对象。
    //初始化的值之间使用逗号分开,以nil结束。
    NSArray6 *city = [NSArray arrayWithObjects:@"上海",@"广州",@"重庆",nil];
    
    for(int i=0; i < [city count];i++){
        NSLog(@"%@",[city objectAtIndex:i]);
    }
    

    NSArray常用方法:

    +(id)arrayWithObjects:obj1,obj2,...nil             //创建一个新的数组,obj1,obj2,.., 以nil结束。
    -(BOOL)containsObject:obj                          //确定数组中是否包含对象obj
    -(NSUInterger)count                                //数组中元素的个数
    -(NSUInterger)indexOfObject:obj                    //第一个包含obj元素的索引号
    -(id)ObjectAtIndex:i                               //存储在位置i的对象
    -(void)makeObjectsPerformSelector:(SEL)selector    //将selector提示的消息发送给数组中的每一个元素
    -(NSArray*)sortedArrayUsingSelector:(SEL)selector  //根据selector提定的比较方法对数组进行排序
    -(BOOL)writeToFile:path atomically:(BOOL)flag      //将数组写入指定的文件中。如果flag为YES,则需要先创建一个临时文件


    二、NSMutableArray是动态数组,可以动态增加数组中的元素,同样NSMutableArray是NSArray的子类。
    实例:
    //用arrayWithCapacity创建一个长度为5的动态数组
    NSMutableArray *nsma = [MSMutableArray arrayWithCapacity:5];
    for(int i=0;i<=50;i++) {
       if( i%3 == 0 ) {
           [nsma addObject:[NSNumber numberWithInteger:i]];   //用addObject给数组nsma增加一个对象
        }
    }
    
    //输出数组中的元素
    for(int i=0;i<[nsma count];i++) {
       NSLog(@"%li",(long)[[nsma objectAtIndex] integerValue]);
    }
    

    NSMutableArray不可变数组

    NSMutableArray常用方法:

    +(id)array                                    //创建一个空数组
    +(id)arrayWithCapacity:size                   //创建一个容量为size的数组
    -(id)initWithCapacity:size                    //初始化一个新分配的数,指定容量为size
    -(void)addObject:obj                          //将obj增加到数组中
    -(void)insertObject:obj atIndex:i             //将obj插入数据的i元素
    -(void)replaceObjectAtIndex:i withObject:obj  //用obj替换第i个索引的对象
    -(void)removeObject:obj                       //从数组中删除所有是obj的对象
    -(void)removeObjectAtIndex:i                  //从数组中删除索引为i的对象
    -(void)sortUsingSelector:(SEL)selector        //用selector指示的比较方法进行排序



  • 相关阅读:
    欧拉计划之题目2:在斐波那契数列中,找出4百万以下的项中值为偶数的项之和。
    MFC非模态对话框的销毁
    MFC:只允许产生一个应用程序实例的具体实现
    从_tiddata看CRT的线程不安全函数
    关于消息循环的深入分析
    MFC:关于MFC窗口对象(CWnd对象)与Window对象(HWND所指对象)的销毁问题
    使用FindFirstFile和FindNextFile对给定目录下所有文件进行广度优先遍历
    工作线程的消息循环与通信
    MFC和设计模式
    _endthreadex与CloseHandle
  • 原文地址:https://www.cnblogs.com/ccguo/p/3355418.html
Copyright © 2011-2022 走看看