我想添加对象到狮子的nsmutable数组,使用ARC xcode 4.3。下面是导致程序与SIGABRT崩溃NSMutableArray insertObject不添加到数组
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10];
[myArray insertObject:@"Hello World" AtIndex:5]
我怎么可以添加自定义对象到阵列中的任何索引?
在此先感谢您的帮助。
我想添加对象到狮子的nsmutable数组,使用ARC xcode 4.3。下面是导致程序与SIGABRT崩溃NSMutableArray insertObject不添加到数组
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10];
[myArray insertObject:@"Hello World" AtIndex:5]
我怎么可以添加自定义对象到阵列中的任何索引?
在此先感谢您的帮助。
,我建议你尽可能多[NSNull null]
填补NSArray
例如,你想数组大小,例如这种情况下有10件物品。
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10];
for(int i = 0; i < 10; i++) {
[myArray addObject:[NSNull null]];
}
而当您想要插入对象时,请改用replaceObjectAtIndex:withObject:
。数组的大小不会改变。
[myArray replaceObjectAtIndex:5 withObject:@"Hello World"];
您还需要在访问项目时针对[NSNull null]进行检查。
id item = [myArray objectAtIndex:5];
if (item != [NSNull null]) {
NSString* stringItem = item;
// your code here
}
当你的阵列容量是10,你的阵列大小后立即创作是0,所以你不能在索引5插入元素,因为它是出界。
而且,你不能插入nil
到一个数组,但如果你想有10零个元素作为占位符的数组,你可以使用NSNull
:
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10];
for (int i = 0; i < 10; i++) {
[myArray addObject:[NSNull null]];
}
// then this would work, but it inserts a new element, so your array size will be 11
// [myArray insertObject:@"Hello World" atIndex:5]
// to keep array size at 10 use this method:
[myArray replaceObjectAtIndex:5 withObject:@"Hello World"];
如果你有元素的固定数量在数组中,然后使用NSArray。然后,您将能够为特定位置设置对象。当你使用NSMutableArray时,它的大小为0.你必须有最小5个元素插入到NSMutableArray中的第5个位置
你试图插入一个空数组中的对象,这将无法工作。相反,尝试添加对象。如果你想用C固定大小的数组的相同方式使用NSArray
尝试......
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10];
[myArray addObject:@"Hello World"];
非常感谢你的帮助! :-) – inforeqd 2012-03-02 00:20:14