2013-03-13 17 views
-2

我剛開了異常,同時運行下面的代碼,代碼是IOS array.next例外

NSMutableArray *mutablearray = [NSMutableArray array]; 

    data=[MyDatabase new]; 
    imagearray=[data OpenMyDatabase:@"SELECT pic_name FROM interior":@"pic_name"]; 

    while([imagearray next]) /////Getting exception here 
    { 
     [mutablearray addObject:imagearray]; 
    } 

和我的例外是,

- [__ NSArrayM明]:無法識別的選擇發送到實例 是什麼這背後的確切原因?

+1

爲什麼_should_這個工作?你讀過NSArray文檔嗎?沒有下一個方法,因爲例外情況非常清楚地告訴你。 – jrturton 2013-03-13 07:50:06

+0

獲取'imagearray'數組的可變副本而不是枚舉'imagearray'並將每個項目添加到可變數組中可能會更快。 'mutablearray = [imagearray mutableCopy]'應該這樣做。另外應該注意的是'imagearray'看起來是一個可變數組('__NSArrayM')。 – mttrb 2013-03-13 07:52:17

回答

1

嘗試這個

NSMutableArray *mutablearray = [NSMutableArray array]; 

data=[MyDatabase new]; 
imagearray=[data OpenMyDatabase:@"SELECT pic_name FROM interior":@"pic_name"]; 

NSEnumerator *e = [imagearray objectEnumerator]; 
id object; 
while (object = [e nextObject]) { 
    [mutablearray addObject:object]; 

} 
1

您沒有正確枚舉。從NSArraydocs

實施例:

NSEnumerator *enumerator = [myArray objectEnumerator]; 
id anObject; 

while (anObject = [enumerator nextObject]) { 
    /* code to act on each element as it is returned */ 
} 
1

嘗試

[mutablearray addObjectsFromarray:imagearray]; 

代替

while([imagearray next]) 
{ 
    [mutablearray addObject:imagearray]; 
}