簡體   English   中英

將對象從一個NSMutableArray放置到另一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM