0

XCode を 4.6 から 5 に更新し、それに伴い iOS7 SDK も更新しました。

空の NSArray またはNSMutableArrayで実行しようとするすべての操作 (述語フィルターなど)が、iOS 5.1 または iOS 7 のシミュレーターでアプリを実行しているときに例外 (NSInvalidArgumentException) を引き起こすことに気付きました (まだ iOS 6.1 のダウンロードに苦労しています)。インスタンス化されていますが (Nil ではありません)、エントリがありません。

そのため、XCode 4.6 で正常に動作していたコードがクラッシュするようになり、アプリ全体でそのコード行を実行する前に、array.count == 0 かどうかを確認するために追加の IF を追加する必要があります。(記念碑的な仕事)

アプリ (XCode 4.6 で公開したバージョン) を AppStore から iOS7 デバイスにダウンロードすると、問題なく動作します。

他の誰かもこれを経験していますか?

4

1 に答える 1

1

このコードに基づいて、[defaults objectForKey:@"Wards"] に格納されている値は配列ではないと思います。値を再確認してください

 NSArray *SelectedWards = [[NSArray alloc]initWithArray:[defaults objectForKey:@"Wards"]];

次のコードを使用して確認できます

if(![[defaults objectForKey:@"Wards"] isKindOfClass:[NSArray class]])
{
     NSLog("OOPs!  Wards is not an array");
}
于 2013-09-25T08:29:45.633 に答える