zoukankan      html  css  js  c++  java
  • NSArray和NSMutableArray相互转换, 以及常用方法-备

    有时候项目中NSArray和NSMutableArray需要相互转化,下面给出相关代码
    1.NSArray

    1.1 转化:NSMutableArray

    1
    NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array]; // array为NSMutableArray类型

    1.2 常用方法

    不可变数组对象:
    [array count] : 得到这个对象数组的长度。
    [array objectAtIndex 0]: 传入数组脚标的id 得到数据对象。
    [arrayWithObjects: …] :向数组对象初始化赋值。这里可以写任意对象的指针,结尾必须使用nil。
     
    +(id)arrayWithObjects:obj1,obj2,…nil 创建一个新的数组,obj1,obj2……是他的元素对象,以nil对象结尾
    -(BOOL)containsObject:obj 确定数组中是否包含对象obj
    -(NSUInteger)count 返回数组元素个数
    -(NSUInteger)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,则需要先创建一个临时文件
     

    2.NSMutableArray :

    2.1 转化: NSArray

    1
    NSArray *array = [NSArray arrayWithArray:mutableArray]; // mutableArray为NSMutableArray类型

    2.2 常用方法

    NSMutableArray arrayWithCapacity:10] :初始化可变数组对象的长度,如果后面代码继续添加数组超过长度10以后NSMutableArray的长度会自动扩充,所以不用担心数组越界。
    [array addObject:…] : 向可变数组尾部添加数据对象。
    [array addObjectsFromArray:..] :向可变数组尾部添加一个数组对象。

    array 创建一个空数组
    +(id)arrayWithCapacity:size 创建一个数组,指定容量为size
    -(id)initWithCapacity:size 初始化一个新分配的数组,指定容量为size
    -(void)addObject:obj 将对象obj添加到数组末尾
    -(void)insertObject:obj atIndex:i 将对象 obj 插入到索引为 i 的位置
    -(void)replaceObject:obj atIndex:i 将数组中索引为 i 处的元素用obj 置换
    -(void)removeObject:obj 从数组中删除所有是 obj 的对象
    -(void)removeObjectAtIndex:i 从数组中删除索引为 i 的对像
    -(void)sortUsingSelector:(SEL)selector 用 selector 只是的比较方法将数组排序
  • 相关阅读:
    53. Maximum Subarray
    64. Minimum Path Sum
    28. Implement strStr()
    26. Remove Duplicates from Sorted Array
    21. Merge Two Sorted Lists
    14. Longest Common Prefix
    7. Reverse Integer
    412. Fizz Buzz
    linux_修改域名(centos)
    linux_redis常用数据类型操作
  • 原文地址:https://www.cnblogs.com/isItOk/p/5341938.html
Copyright © 2011-2022 走看看