ループ内で設定される可能性のある NSDictionary があります。ループの最後で、辞書が定義されているかどうかを調べたいと思います。次に例を示します。
NSDictionary *myDict;
for (int i=0; i < 100; i++){
if (thisCondition){
myDict = [NSDictionary dictionaryWithObjectsAndKeys:etc, nil];
}
}
if (myDict) {
[self doSomething];
}
残念ながら、myDict が割り当てられているかどうかに関係なく、myDict のテストは毎回パスします。[myDict count] のようなメソッドを myDict に渡そうとすると、割り当てられていないため、exc_bad_access が返されます。ですから、それは一種の無人地帯です。
これを達成する方法はありますか?NSMutableDictionary に切り替えて定義し、ループに追加してカウントをテストできることはわかっていますが、それは私の好みではありません。