1

ループ内で設定される可能性のある 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 に切り替えて定義し、ループに追加してカウントをテストできることはわかっていますが、それは私の好みではありません。

4

1 に答える 1