[英]How to remove one NSArray's objects from another NSMutableArray?
[英]Putting objects from one NSMutableArray to another NSMutableArray
我有2個NSMutableArrays,我想將某些對象形式1的數組放到我已經編寫了代碼的另一個數組中,但是它不起作用,它給我這個錯誤: *由於未捕獲的異常'NSRangeException'而終止應用程序,原因:'* - [__NSArrayM objectAtIndex:]:索引296超出范圍[0 .. 295]” *第一擲調用堆棧:(0x1c9a012 0x10d7e7e 0x1c3c0b4 0x2f04 0xb20b90 0x1c59376 0x1c58e06 0x1c40a82 0x1c3ff44 0x1c3fe1b 0x1bf47e3 0x1bf4668 0x1f65c 0x252d 0x2455)的libc ++ abi.dylib:終止稱為投擲一個例外
viewdidload中的Initialisierung:
arrayLine1 =[[NSMutableArray alloc] initWithCapacity:80000];
arrayLine1a =[[NSMutableArray alloc] initWithCapacity:70000];
line1tagzahl=0;
line1tagzahl2=0;
傳遞代碼:
for (int a=0; a<10; ) {
[arrayLine1a insertObject:[arrayLine1 objectAtIndex:line1tagzahl2] atIndex:line1tagzahl2];
line1tagzahl2=line1tagzahl2+1;
a=a+1;
}
在數組中創建對象的函數(此函數被稱為非常快速且頻繁):
for (float a=0; a<0.8; ) {
UIImageView *line1 =[[UIImageView alloc] initWithFrame:CGRectMake(Startpoint1.center.x-(w/2),Startpoint1.center.y-kurve1yf+a,w,h)];
line1.image=[UIImage imageNamed:@"Unbenannt"];
line1.tag=line1tagzahl;
[self.view addSubview:line1];
[arrayLine1 insertObject:line1 atIndex:line1tagzahl];
line1tagzahl=line1tagzahl+1;
a=a+0.1;
}
現在您應該有更多信息
如果你問我在array2中有10個以上的對象
似乎您尚未閱讀所發布的錯誤消息。 數組中有296個對象。 但是,如果您只想復制陣列,為什么不...呃...復制它?
NSMutableArray *secondArray = [firstArray mutableCopy];
使用NSMutableArray類的默認方法-addObjectsFromArray:
有什么問題嗎?
- (void)serverGotResponse:(NSArray *)objects {
[_myMutableArray addObjectsFromArray:objects];
}
為了防止超出范圍的異常,您應該使用count
屬性:
while (i < array.count) {
// do something ..
i++;
}
如果要復制所有對象,則可以復制整個數組:
array2 = [array1 copy]
您正在嘗試添加前10個對象,但是對索引296拋出了異常,索引296是超出范圍的第一個索引。
由於某種原因,您的while
條件無法正常運行,因此我建議您開始尋找
我還建議您使用for
,它實際上比潛在的無限循環更簡單明了
for (int a = 0; a < 10; a++) {
[array1 insertObject:[array2 objectAtIndex:a] atIndex:a];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.