[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; }