Cra*_*Dev 19 xcode objective-c init nsmutablearray ios
我有这种情况
array = [[NSMutableArray alloc] initWithCapacity:4]; //in viewDidLoad
if (index == 0){
[array insertObject:object atIndex:0];
}
if (index == 1){
[array insertObject:object atIndex:1];
}
if (index == 2){
[array insertObject:object atIndex:2];
}
if (index == 3){
[array insertObject:object atIndex:3];
}
Run Code Online (Sandbox Code Playgroud)
但是如果我按顺序插入对象就可以了,相反如果我按此顺序填充数组:0和3之后,它不能正常工作,为什么???
Zap*_*pko 54
NSMutableArray即使容量为4,也不能在索引3处插入对象.可变数组具有与其中的对象一样多的可用"单元".如果你想在一个可变数组中有"空单元",你应该使用[NSNull null]对象.这是一个特殊的存根对象,这意味着没有数据.
NSMutableArray *array = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < 4; ++i)
{
[array addObject:[NSNull null]];
}
[array replaceObjectAtIndex:0 withObject:object];
[array replaceObjectAtIndex:3 withObject:object];
Run Code Online (Sandbox Code Playgroud)
tas*_*oor 11
在C风格int a[10]创建大小为10的数组,你可以访问任何指标0,以9任何顺序.但是,这不符合的情况下initWithCapacity或arrayWithCapacity.这只是暗示底层系统可以用来提高性能.这意味着您无法无序插入.如果你有大小的可变数组n则只能从索引插入0到n,0到n-1为现有位置和n在端部位置插入.所以0,1,2,3是有效的.但0,3或1,2顺序无效.
| 归档时间: |
|
| 查看次数: |
31377 次 |
| 最近记录: |