您的位置:首页 > 其它

1.NSArray/NSMutableArray用法总结

2016-05-16 15:45 381 查看
NSArray用法总结
初始化与赋值

截取和处理数组

文件读写

数组判断

数组遍历

NSMutableArray用法总结
截取和处理可变数组

可变数组遍历

NSArray用法总结

初始化与赋值

//初始化
NSArray *arr = [[NSArray alloc] init];

//初始化
NSArrya *arr = @[@1, @2, @3];

//空数组
NSArray *arr = [NSArray array];

//具有多个元素的数组(以nil结束)
NSArray *arr = [[NSArray alloc] arrayWithObject: @"1", @"2", @"3",nil];

//用另一个数组进行初始化
NSArray *arr = [NSArray alloc] arryWithArray: arr2];


截取和处理数组

//获取数组个数
NSLog(@"数组具有的元素个数为: %ld", arr.count);

//获取最前/最后面元素
[arr firstObject];
[arr lastObject];

//访问索引对象
NSString *str = [arr objectAtIndex: x]);

//查看对象索引位置
NSLog(@"元素的下标为: %ld ", [arr indexOfObject: @"对象"]);

//追加数组元素(返回新数组)
NSArray *arr2 = [arr1 arrayByAddingObject: @"元素"];

//返回两数组相同的第一个元素
NSLog(@"%@ ", [arr firstObjectCommonWithArr: arr2]);

//根据指定字符串来连接数组元素(返回字符串)
NSString *str = [arr componentsJoinedByString: @"指定字符串"];

//根据指定字符串来拆分数组元素(返回数组)
NSArray *arr = [str componentsSeparatedByString: @"指定字符串"];


文件读写

//写入到到文件中(返回BOOL类型)
//atomically为YES: 存入临时文件,成功写入目标文件再从临时文件中写入
//atomically为NO:直接写入到目标文件
[arr writeToFile: @"path" atomically: YES/NO];

//读取文件中的数组信息
NSArray *arr [NSArray arrayWithContentsOfFile: @"path"];


数组判断

//查看是否包含元素
BOOL tmp = [arr containObject: @"元素"];

//比较内容是否相同
BOOL tmp = [arr1 isEqualToArray: arr2];


数组遍历

//(1)for循环
for(int i=0; i<[arr.count]; i++)
{
NSLog(@"%ld ", [arr objectAtindex: i]);
}

//(2)快速枚举
for(id obj in arr)
{
NSLog(@"%@ ", obj);
}

//(3)迭代器
NSEnumerator *enumerator = [arr objectEnumerator];
id obj = nil;
while(obj = [enumerator nextObject]){
NSLog(@"obj = %@", obj);
}

//(4)Block块
//obj:数组元素。index:元素下标。stop:YES为停止,NO为继续
[arr enumeratorObjectsUsingBlock: ^(id obj, NSUInteger index, BOOL  *stop){
if(indx == x){      //运行到X元素标停止运行
*stop = YES;
}
else{
NSLog(@"indx = %ld, obj = %@" ,indx, obj);
}
}];


NSMutableArray用法总结

//初始化并且为mArr分配X个容量
NSMutableArray *mArr = [[NSMutableArray alloc] initWithCapacity: x];


截取和处理可变数组

//往尾部添加元素
[mArr addObject: @"字符串"];

//插入元素(往x索引的位置插入元素)
[mArr insertObject: @"字符串" atIndex: x];

//指定索引替换对象
[mArr replaceObjectAtIndex: x withObject: @"替换的字符串"];

//删除指定元素
[mArr removeObject: @"字符串"];

//删除指定下标元素
[mArr removeObjectAtIndex: x];

//删除指定数组中的内容
[mArr removeObjectsInArray: arr];

//删除全部对象
[mArr removeAllObjects];

//添加数组
[mArr addObjectsFromArray: arr];

//复制array的元素
NSMutableArray *mArr = [NSMutableArray alloc] init];
NSArray *arr = [NSArray arrayWithObjects: @"a", @"b",nil];
id obj;

for(int i=0; i<arr.count; i++)
{
obj = [arr objectAtIndex: i] copy];
[mArr addObject: obj];
}


可变数组遍历

//遍历方法可以用普通数组中的快速枚举方法以及for循环

//从前向后
NSEnumerator *enumerator = [mArr objectEnumerator];

while (id obj = [enumerator nextObject]){
NSLog(@"obj: %@ ", obj);
}

//从后往前
NSEnumerator *enumerator = [mArr reverseObjectEnumerator];

while (id obj = [enumerator nextObject]) {
NSLog(@"obj: %@ ",obj);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: