我有一個應用程序,寫在Objective-C
,需要顯示數字的UITable
。數字列表取自NSMutableArray
,其信息來自.plist文件。通常情況下,一切都很好。從NSMutableArray中刪除項目時應用崩潰,但只有當某些條件得到滿足
然而,應用程序包括設置在特定的方式來組織的數字。默認設置只是按字母順序組織它們。下一個組織它們與默認相反。這兩個設置都很好。通過分割奇數和偶數來選擇組織表的設置時會出現問題。這是一個分割它們的代碼:
for (int i = 0; i < [tempGeneralSorterArray count]; i++)
{
NSString *tempHouseNumber = [[tempGeneralSorterArray objectAtIndex:i] stringByTrimmingCharactersInSet:letters];
int tempHouseNumberValue = [tempHouseNumber intValue];
if (tempHouseNumberValue % 2 == 0) //% is the modulo operator, shows what's left after a division
{
//even
[tempEvenSorterArray addObject:[tempGeneralSorterArray objectAtIndex:i]];
[tempEvenSorterArray sortUsingSelector:@selector(compare:)];
}
else
{
//odd
[tempOddSorterArray addObject:[tempGeneralSorterArray objectAtIndex:i]];
[tempOddSorterArray sortUsingSelector:@selector(compare:)];
}
}
在此之後,該應用結合了兩個陣列(tempOddSorterArray和tempEvenSorterArray)在根據設置不同的方式選擇,但一般是這樣的:
customerArray = [tempOddSorterArray arrayByAddingObjectsFromArray:tempEvenSorterArray];
表格顯示的很好,但是當我嘗試刪除單元格時,出現錯誤。它崩潰這一行:
[customerArray removeObjectAtIndex:indexPath.row];
我得到這個在調試器:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance 0x7fae62410f30'
任何幫助,將不勝感激,如果需要我會很樂意提供更多的信息或代碼。
而且,這裏使用的所有陣列NSMutableArrays。
_Also,這裏使用的所有陣列NSMutableArrays._這是錯誤的。至少有一個是不可變的,從例外中可以看出:'__NSArrayI'。 – Avi
@Avi我宣佈我的三個使用陣列(customerArray,tempEvenSorterArray和tempOddSorterArray)在我的.h文件NSMutableArrays ...是否有可能爲它,如果我做錯了什麼以後更改到正規嗎? – JustMe
變量的聲明類型只告訴編譯器你認爲它是什麼。它對實際類型的影響不大。這對於對象來說更是如此,對於類簇和子類,例如'NSArray'和親屬來說更是如此。 – Avi