黑马程序员——NSArray小结

常见的NSArray方法

方法 描述
 + (instancetype)arrayWithObjects:(id)Obj...  创建一个新数组,obj,...是其中的元素
 - (BOOL)containsObject:(id)Obj  确定数组中是否包含对象Obj(使用isEqual:方法)
 - (NSUInteger)indexOfObject:(id)Obj  第一个包含对象Obj的元素索引号(使用isEqual:方法)
 - (NSUInteger)count  数组中元素的个数 
 - (NSUInteger)indexOfObjectPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate  传递每个对象obj,带有索引号idx到区块predicate中,如果obj通过测试返回YES,未通过返回NO,设置变量指针stop为YES结束处理
- (id)lastObject  返回数组最后的元素
 - (id)objectAtIndex:(NSUInteger)index  返回下标为index的元素
 - (void)makeObjectsPerformSelector:(SEL)aSelector   将aSelector指示的消息发送给数组中得每个元素
 - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block  通过块获取数组中得每个元素,包括对象obj和对应的index,只有当所有元素都遍历完或设置变量指针stop为YES才结束处理
 - (NSArray *)sortedArrayUsingSelector:(SEL)comparator  根据指定comparator方法的比较器对数组进行排序
 - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr  通过执行区块cmptr对数组进行排序
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag   将数组写入指定的文件夹中,如果flag为YES,则先创建一个临时文件

常见的NSMutableArray方法(NSMutableArray类是NSArray的子类,因此上面的方法,对NSMutableArray也适用)

方法 描述
+ (instancetype)array 创建一个空数组
+ (instancetype)arrayWithCapacity:(NSUInteger)numItems 使用指定的初始numItems创建一个数组
- (instancetype)initWithCapacity:(NSUInteger)numItems 使用指定的初始numItems初始化新分配的数组
- (void)addObject:(id)object 将对象object添加到数组的末尾
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index 将对象object插入到数组的index位置
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject 将数组中下标为index的元素用anObject对象替换
- (void)removeObject:(id)anObject 从数组中删除所有的anObject
- (void)removeObjectAtIndex:(NSUInteger)index 从数组中删除元素index
- (void)sortUsingSelector:(SEL)comparator 用comparator指定的比较器将数组排序
- (void)sortUsingComparator:(NSComparator)cmptr 通过执行区块block对数组进行排序

 

示例代码:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
      
        //类方法数组创建
        NSArray *array1 = [NSArray arrayWithObject:@"obj"];
        NSArray *array2 = [NSArray arrayWithObjects:@"obj1", @"obj2", @"obj3", nil];
        NSArray *array3 = [NSArray arrayWithArray:array2];
        NSLog(@"array1 :%@", array1);
        NSLog(@"array2 :%@", array2);
        NSLog(@"array3 :%@", array3);
        
        //实例方法创建数组
        NSArray *array4 = [[NSArray alloc] initWithObjects:@"AAA", @"bbb", nil];
        NSLog(@"array4 :%@", array4);
        
        //数组个数
        NSLog(@"array3 count :%d", [array3 count]);
        
        //访问元素
        NSLog(@"obj at index :%@", [array2 objectAtIndex:2]);
        
        //追加(返回新的array对象)
        NSArray *array5 = [array3 arrayByAddingObject:@"ccc"];
        NSLog(@"array5 :%@", array5);
        
        //根据指定的字符串连接数组元素
        NSString *joinString1 = [array5 componentsJoinedByString:@"|"];
        NSLog(@"joinString :%@",joinString1);
        
        //是否包含指定对象
        NSLog(@"isContains :%d", [array5 containsObject:@"obj2"]);
        
        //查找某个对象所在索引
        NSLog(@"indexOfObject :%d",[array5 indexOfObject:@"obj3"]);
        
        //最后一个元素
        NSLog(@"lastObejct :%@", [array5 lastObject]);
        
        //遍历数组
        for (id element in array5) {
            NSLog(@"element :%@", element);
        }
        
        //可变数组(期望容量设置为3)
        NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:3];
        //直接添加
        [mutableArray addObject:@"aaa"];
        [mutableArray addObject:@"eee"];
        [mutableArray addObject:@"000"];
        NSLog(@"addObject :%@", mutableArray);
        
        //插入元素
        [mutableArray insertObject:@"ccc" atIndex:0];
        NSLog(@"insertObject :%@", mutableArray);
        
        //移除指定元素
        [mutableArray removeObject:@"ccc"];
        NSLog(@"removeObject :%@", mutableArray);
        
        //移除指定下标元素
        [mutableArray removeObjectAtIndex:0];
        NSLog(@"removeObjectAtIndex :%@", mutableArray);
        
        //移除最后一个元素
        [mutableArray removeLastObject];
        NSLog(@"removeLastObject :%@", mutableArray);
        
        //添加数组
        [mutableArray addObjectsFromArray:array5];
        NSLog(@"addObjectsFromArray :%@", mutableArray);
        
        //移除指定数组中的内容
        [mutableArray removeObjectsInArray:array2];
        NSLog(@"removeObjectsInArray :%@", mutableArray);
        
        //指定索引替换对象
        [mutableArray replaceObjectAtIndex:0 withObject:@"==="];
        NSLog(@"replaceObjectAtIndex :%@", mutableArray);
        
        //删除全部对象
        [mutableArray removeAllObjects];
        NSLog(@"removeAllObjects :%@", mutableArray);
    }
    return 0;
}

 

posted @ 2015-10-13 14:10  丿繁华落尽  阅读(308)  评论(0编辑  收藏  举报