[NSArray] 一 定义 1 不可变数组 2 oc中数组的元素可以是任何对象 3 数字中装有元素的地址 二 初始化 NSArray *变量 = [[NSArry alloc] initWithObjects:对象...,nil]; 三 使用场景 1 遍历数组 A 枚举 NSEnumerator *enums = [array1 objectEnumerator]; while (obj=[enums nextObject]) B 下标 for (i=0;i<count;i++) { C 快速枚举法 for(id obj in array1) 2 获取长度 int count = [数组对象 count]; [NSMutableArray] 一 定义 1 可变数组 2 可以插入任意对象 二 初始化 NSMutableArray *变量名 = [[NSMutableArray alloc] init]; 三 使用场景 1 增加对象 [mutableArray addObject:@"JACK"]; 2 下标替换对象 [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2]; 3 移除对象 [mutableArray removeObject:person]; [mutableArray removeObjectAtIndex:0]; 4 顺序枚举遍历 NSEnumerator *_enums = [mutableArray objectEnumerator]; 5 倒序枚举遍历 NSEnumerator *_reverseEnums = [mutableArray reverseObjectEnumerator]; 6 字符串和数组的转换 NSArray *_strArray = [str componentsSeparatedByString:@" "]; NSString *str = [_strMutableArray componentsJoinedByString:@" "];
// // main.m // OC-数组 // // Created by wangtouwang on 15/3/20. // Copyright (c) 2015年 wangtouwang. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { // 不可变数组 NSArry NSLog(@"NSArry"); Person *person = [Person new]; person._name=@"JACK"; //初始化 NSArray *array1 = [[NSArray alloc] initWithObjects:@"jack",@"lucy",person, nil]; NSLog(@"%@",array1); //枚举 NSLog(@"枚举器法打印数组结果:"); NSEnumerator *enums = [array1 objectEnumerator]; id obj; while (obj=[enums nextObject]) { NSLog(@"%@",obj); } //快速枚举 NSLog(@"快速枚举法打印数组结果:"); for(id obj in array1){ NSLog(@"%@",obj); } //下标便利 NSInteger i = 2; id obj2 = [array1 objectAtIndex:i]; NSLog(@"%@",obj2); //获取长度 NSInteger count=[array1 count]; NSLog(@"数组长度 %lu",count); i=0; for (i=0;i<count;i++) { NSLog(@"%@",[array1 objectAtIndex:i]); } //可变数组 NSMutableArray NSMutableArray *mutableArray = [[NSMutableArray alloc] init]; //增加 [mutableArray addObject:@"JACK"]; [mutableArray addObject:@"MOBILE"]; [mutableArray addObject:@"TEL"]; [mutableArray addObject:@"BOOK"]; [mutableArray addObject:@"STUDENT"]; [mutableArray addObject:person]; NSLog(@"%@",mutableArray); //替换对象 NSLog(@"替换对象"); [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2]; NSLog(@"%@",mutableArray); //移除对象 参数 id类型 NSLog(@"移除对象 参数 id类型"); [mutableArray removeObject:person]; NSLog(@"%@",mutableArray); //移除对象 参数 NSInteger NSLog(@"移除对象 参数 NSInteger"); [mutableArray removeObjectAtIndex:0]; NSLog(@"%@",mutableArray); //正序枚举遍历 NSLog(@"正序枚举遍历"); NSEnumerator *_enums = [mutableArray objectEnumerator]; id obj3; while (obj3=[_enums nextObject]) { NSLog(@"%@",obj3); } //倒序枚举遍历 并且可以遍历时删除 NSLog(@"倒序枚举遍历 并且可以遍历时删除"); NSEnumerator *_reverseEnums = [mutableArray reverseObjectEnumerator]; while (obj3=[_reverseEnums nextObject]) { NSLog(@"%@",obj3); [mutableArray removeObject:obj3]; } NSLog(@"倒序枚举遍历结束 查看数组长度 %lu",[mutableArray count]); //字符串和数组的转换 NSString *str = @"hello world hao are you"; NSArray *_strArray = [str componentsSeparatedByString:@" "]; NSLog(@"lenght = %lu",[_strArray count]); NSMutableArray *_strMutableArray = [[NSMutableArray alloc] init]; NSEnumerator *_strEnums = [_strArray reverseObjectEnumerator]; NSString *objstring ; while (objstring=[_strEnums nextObject]) { [_strMutableArray addObject:objstring]; } NSLog(@"%@",_strMutableArray); str = [_strMutableArray componentsJoinedByString:@" "]; NSLog(@"%@",str); } return 0; }