次のように、NSInteger を int と比較するときにクレイジーな問題が発生します。
NSInteger count = [dictionary count];
if (count == 0) {
// Do something
}
else {
// Do something
}
カウントがゼロのときはif節の切り出されたコードが実行されるが、カウント数が変化するとif節の切り出されたコードは実行されず(これは正しい)、else節の切り出されたコードは実行されないどちらかを実行します。デバッグすると、カーソルは常に else 句を飛び越えます。
カウント数を int に変更するか、NSNumber として比較しようとしましたが、何も変わりませんでした。
この問題を解決する方法を知っている人はいますか?