Array 是一个有序的集合,可以存储相同类型的元素。
初始化:
// 1. init时就有值
NSArray *arrayOne = [NSArray arrayWithObject:@"taiwan"];
// taiwan
// 2. init时为空,後来新增值进入array
NSMutableArray *arrayTwo = [NSMutableArray array];
[arrayTwo addObject:@"taiwan"];
[arrayTwo addObject:@123123];
//[tawian,123123]
NSArray
就像是 let array
,NSMutableArray
则像 var array
NSArray 是一个常数,初始化时给定参数後就无法再修改,used for read only
NSArray * array2;
array2 = [array2 arrayByAddingObject:obj];
这意味着创造一个新的 array 并将 pointer
更改为新创的 array。这方法会导致 Memory Leak,因为在创造新 array 前没有清理旧的 array。
若要采用上述方式,必须要清理掉旧 array:
NSArray *oldArray;
NSArray *newArray;
newArray = [oldArray arrayByAddingObject:obj];
[oldArray release];
但如果想修改 array 最好的做法是使用 NSMutableArray
NSMutableArray *mutableArray;
// Initialisation etc
[mutableArray addObject:obj];
在 Objective-C 中,想要排序就需要用到一个工具,NSSortDescriptor
先准备一个 array,里头放乱序的数字
NSArray *array = @[@5,@3,@8,@6];
准备好排序规则,key 是指有没有要按照什麽属性排列,ascending 是代表要不要靠升序来排序。
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
执行排列
array = [array sortedArrayUsingDescriptors:@[sortDescriptor]];
结果
2021-09-30 22:18:06.529643+0800 TestOC[10875:200407] (
3,
5,
6,
8
)
准备一个 array
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"This",@"a",@"string", nil];
在 index = 1 插入 "is"
[array insertObject:@"is" atIndex:1];
NSLog(@"%@",array);
2021-09-30 22:42:34.140238+0800 TestOC[11046:214585] (
This,
is,
a,
string
)
与 Swift 不同的是,Objective-C 的 array 可以指定删除哪个字,Swift 只能选择位置
[array removeObject:@"This"];
NSLog(@"%@",array);
2021-09-30 22:42:34.140286+0800 TestOC[11046:214585] (
is,
a,
string
)
新增一个 array ,使用 containsObject 进行判断
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"This",@"a",@"string", nil];
if ([array containsObject:@"a"]) {
NSLog(@"有 a 这个字串");
}
2021-09-30 22:48:42.959230+0800 TestOC[11080:218077] 有 a 这个字串
今天我们继续介绍一些比较知名的AI作曲的公司/软件。 Jukedeck Jukedeck可以说是AI...
使用方法 //如果Type是Button if (sender.GetType().Name.Eq...
简短自我介绍 大家好!我是Marshal,目前还是一位在校大学生,就读资讯相关科系。 为什麽会想选这...
制作表单 createRadio(); 沿用上一个文章的参考 加上以下设定 我们可以用radio去做...
Tableau 优点 Tableau 是一种企业级的商业智能 (BI, Business Intel...