Objective-C
で書かれたアプリがあり、数字のUITable
を表示する必要があります。数字のリストは、情報が.plistファイルから取られたNSMutableArray
から取られます。通常、すべて正常です。NSMutableArrayからアイテムを削除するときにアプリケーションがクラッシュするが、特定の条件が満たされた場合のみ
ただし、このアプリには特定の方法で番号を整理するための設定が含まれています。デフォルトの設定では、アルファベット順に整理されます。次はデフォルトとは逆にそれらを編成します。これらの2つの設定は問題ありません。この問題は、奇数と偶数を分割してテーブルを構成する設定を選択したときに発生します。これは、それらを分割するコードである。この後
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._これを:これは、あなたがそれを行うことができる方法であります偽です。例外から分かるように、少なくとも1つは不変です: '__ NSArrayI'。 – Avi
@Avi NSMutableArraysとして私の使用している配列(customerArray、tempEvenSorterArray、tempOddSorterArray)をすべて.hファイルに宣言しました...後で何か問題があった場合、通常のものに変更することは可能ですか? – JustMe
変数の宣言された型は、それがあなたが考えるものだけをコンパイラに伝えます。これは実際に型が何であるかにほとんど影響を与えません。これはオブジェクトにとってさらに真実であり、 'NSArray'や親戚のようなクラスクラスターやサブクラスではさらに真実です。 – Avi