不可变数组 ——NSArray
常用的初始化一个数组:
NSArray *array1 = [[NSArray alloc]
init];
NSArray *array2 = [NSArray array];
//对于上述两个方法,在NSArray中用的很少,因为这是一个空数组,它的值是不可改变的,意味着一旦创建,就永远为空
NSArray *array3 = [NSArray
arrayWithObjects:[NSNumber numberWithInt:123],@"char",[NSNumber
numberWithFloat:1.0f],nil];
NSArray *array4 = [NSArray
arrayWithArray:array3];
NSArray *array5 = [NSArray
arrayWithObject:@123];//NSNumber新方法
NSString *path = @"string8.text";
//@里出现的是想要访问的文件的路径
NSArray *array6 = [NSArray
arrayWithContentsOfFile:path];
新方法:NSArray *array =
@[@123,@"123",@{@"key": @"value"}];
新方法的出现,减轻了不少代码的负担,对于新方法不用去刻意记,在xcode中输入@后,系统会自动出现一幅图, 选择想用的方法,去创建就好。
对于alloc 方法和不用alloc
创建的区别,在这里就不叙述了,xcode中使用ARC后,开发者可以不用手动管理内存,用alloc时也没有太多需要注意的问题了。
常用的方法:
获取数组长度:
NSInteger count = [array count];
根据下标访问数组:
NSString * string = [array3 objectAtIndex:1];
在原来的数组上追加对象或数组,返回一个新的数组(原来的数组不变)
NSArray *addArray1 = [array1
arrayByAddingObject:@"char"];
NSArray *addArray2 = [array1
arrayByAddingObjectsFromArray:array4];
用指定的字符串将数组中的元素连接起来:
NSString *appstring = [array4
componentsJoinedByString:@","];
用指定的字符串将字符串中的元素分开并保存到数组中:
NSArray *appArray = [appstring
componentsSeparatedByString:@","];
数组中是否包含了某个对象:
BOOL isContain = [appArray
containsObject:@"abc"];
查找某对象在数组中的位置,若找不到,将返回NSNotFound:
NSInteger index = [appArray indexOfObject:@"char"];
返回数组中最后一个元素:
NSString *lastString = [appArray lastObject];
可变数组
——NSMutableArray(继承自NSArray)
常用方法:
初始化,设置元素的个数为6,但是可以修改:
NSMutableArray *muArray1 =
[NSMutableArray arrayWithCapacity:6];
向数组中指定下标插入一个元素:
[muArray1 insertObject:@"abc"
atIndex:0];
向数组中加入一个元素:
[muArray1
addObject:@"123"];
移除数组中最后一个元素:
[muArray1
removeLastObject];
移除数组中指定元素:
[muArray1 removeObject:@"123"];
移除数组中指定下标元素:
[muArray1 removeObjectAtIndex:0];
加入数组作为其元素:
[muArray1
addObjectsFromArray:array];
遍历数组的两种方法:
常规方法:
NSArray *array =
@[@"a",@"b",@"c",@"d",@"e"];
NSInteger length = [array
count];
for (int i = 0; i < length; i++)
{
NSString * element = [array
objectAtIndex:i];
NSLog(@"element =
%@\n",element);
}
快速遍历:
NSArray *array =
@[@"a",@"b",@"c",@"d",@"e"];
NSInteger length = [array
count];
for (NSString *element in array)
{
NSLog(@"element =
%@",element);
}
通过枚举类型遍历:
NSEnumerator *enumerator = [dic keyEnumerator];
id key = [enumerator nextObject];
while (key) {
id obj = [dic objectForKey:key];
NSLog(@"%@", obj);
key = [enumerator nextObject];
}
NSArray,NSMutableArray的一些常用方法,布布扣,bubuko.com