数组只能存储对象类型,并且结束标示符为nil,所以尤为注意,所以需要存储空类型,需要使用NSNull.
##初始化常用初始化方法列表
+ (instancetype)array;
+ (instancetype)arrayWithObject:(id)anObject;
+ (instancetype)arrayWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;
+ (instancetype)arrayWithArray:(NSArray *)array;
+ (NSArray *)arrayWithContentsOfFile:(NSString *)path;
+ (NSArray *)arrayWithContentsOfURL:(NSURL *)url;示例:
// 初始化方法
NSArray *array1 = [NSArray arrayWithObjects:@"hello", @"world", @"iOS", @"android", nil];
// 简写:
NSArray *array2 = @[@"hello", @"world"];这里有id的详细说明id和instancetype区别
// 取值
id object1 = [array1 objectAtIndex:2];
// 简写
id object2 = array1[2];
// 取下标
NSUInteger index = [array indexOfObject:@"iOS"]
// 计数
NSLog(@"count = %ld", array1.count);// 查询
NSLog(@"%d", [array1 containsObject:@"123"]);// 增加一个元素
NSArray *array3 = [array1 arrayByAddingObject:@"123"];
// 增加一个数组所有的元素
NSArray *array4 = [array1 arrayByAddingObjectsFromArray:array2];
NSLog(@"array3 = %@", array3);
NSLog(@"array4 = %@", array4);NSArray *array = @[@"www", @"baidu", @"com"];
// 利用点拼接数组元素
NSString *string = [array componentsJoinedByString:@"."];
// 利用点分割字符串
NSArray *newArray = [string componentsSeparatedByString:@"."];NSArray *array = [NSArray arrayWithObjects:@"hello", @"world", @"iOS", @"android", nil];###使用系统方法
默认是升序
// 区分大小写排序
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(compare:)];
// 不区分大小写排序
NSArray *sortedArray1 = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
###使用代码块
// 使用代码块
NSArray *sortedArray2 = [array1 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// 主要逻辑,决定当前是升序还是降序
// 如果在return之后加上负号,则降序。
return [obj1 compare:obj2];
}]; // 第一种
for (int i = 0; i < array.count; i ++) {
NSLog(@"%@", array[i]);
}
// 快速遍历
for (id obj in array) {
NSLog(@"%@", obj);
}
// 使用枚举器
NSEnumerator *enumerator = [array objectEnumerator];
id obj = [enumerator nextObject];
while (obj) {
NSLog(@"枚举%@", obj);
obj = [enumerator nextObject];
}