#import <Foundation/Foundation.h>
//符合OC数组排序函数参数(NSInteger (*)(id, id, void *))的函数
NSInteger comp(id objc1, id objc2, void * p){
NSLog(@"%@ %@", objc1, objc2);
//-1 升序 (不交换元素) 0 相等 (不交换元素) 1 降序 (交换元素)
//我知道都是字符串
//objec1 小 -1 大 1 等 0
if ([objc1 compare:objc2] == 1) {
return 1;//交换元素
}else{
return 0;
}
//return 0;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
//NSArray 不可变数组
//三个子符串类型的元素
// 1 简易的初始化操作 @ + [] 元素-->对象(id)
NSArray *array = @[@"1", @"2", @"3"];
// 2 根据索引提取相应的元素
//objectAtIndex: 返回值类型id
NSString *element = [array objectAtIndex:0];
NSLog(@"%@", element);
// 3 初始化方法 最后以nil结尾!
// va_arg()不能确定元素的个数
//initWithObjects:
NSArray *array2 = [[NSArray alloc] initWithObjects:@"a", @"d", @"b", @"c", nil];
NSLog(@"%@", array2);
// 4 使用一个数组初始化另一个数组
//initWithArray:
NSArray *array3 = [[NSArray alloc] initWithArray:array2];
NSLog(@"数组3:%@", array3);
// 5
//arrayWithObjects:
NSArray *array4 = [NSArray arrayWithObjects:@"一", @"二", @"三", nil];
NSLog(@"%@", array4);
// 6 拼接新元素,拼接后的结果以数组的形式返回
//arrayByAddingObject:
NSArray *array5 = [array2 arrayByAddingObject:@"d"];
NSLog(@"%@", array5);
// 7 拼接新元素,以整个数组的形式进行拼接,返回新数组
//arrayByAddingObjectsFromArray:
NSArray *array6 = [array2 arrayByAddingObjectsFromArray:array4];
NSLog(@"%@", array6);
// 8 以某个连接符(参数传入的字符串)连接所有的数组元素,以字符串的形式放回。(一般只用于数组元素为字符串的数组)
//componentsJoinedByString:
NSString *string = [array2 componentsJoinedByString:@""];
NSLog(@"%@", string);
// 9 根据元素返回索引号
//indexOfObject:
NSUInteger intger = [array2 indexOfObject:@"b"];
NSLog(@"%lu", intger);
// 10 返回第一个元素、返回最后一个
//firstObject lastObject
//array 空元素初始化(内存空间已开辟,已初始化)
//nil 代表空地址 @"" @[] 空内容
//firstObjct objectAtIndex:0 都能取第一个元素 存在一样 不存在 第一个取出null 第二个程序异常终止
NSArray *array7 = @[];
NSLog(@"%p", array7);
NSLog(@"个数:%lu", [array7 count]);
NSLog(@"--%@--", [array7 firstObject]);
// 11
//sortedArrayUsingFunction: context:
//使用自定义的函数时,只需把函数指针传过来就可以了。
NSArray *array8 = [array2 sortedArrayUsingFunction:comp context:nil];
NSLog(@"排序后的数组:%@", array8);
//实现一个数组 @[@"11", @"23", @"8", @"1", @"99"] 排序方法排序 按照数值的大小(小->大)
//NSMutbleArray
NSMutableArray *mut_array = [[NSMutableArray alloc] initWithObjects:@"11", @"22", @"33", @"44", @"55", nil];
// 12 添加元素
//addObject:
// 13 删除元素
//removeObject:
// 14 插入元素,根据索引号
//insertObject: atIndex:
[mut_array insertObject:@"66" atIndex:5];
NSLog(@"%@", mut_array);
// 15 移除元素,根据索引
//removeObjectAtIndex:
[mut_array removeObjectAtIndex:0];
NSLog(@"%@", mut_array);
// 16 替换元素,根据索引
//replaceObjectAtIndex: withObject:
[mut_array replaceObjectAtIndex:0 withObject:@"二二"];
NSLog(@"%@", mut_array);
// 17 交换元素,根据索引
//exchangeObjectAtIndex: withObjectAtIndex:
[mut_array exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"%@", mut_array);
// 18 删除元素,限定:1、特定的元素 2、特定的范围中
//removeObject: inRange:
NSRange range = {1, 1};
[mut_array removeObject:@"二二" inRange:range];
NSLog(@"%@", mut_array);
}
return 0;
}
关于NSArray的一些用法
最新推荐文章于 2021-05-19 14:50:41 发布