我想添加對象到獅子的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