特定のシナリオで比較する定数のint値を格納しようとしています。私のこのようなルックス定義:NSNumberの値と定義済みのintとの比較
#define kApiSuccessCode 0
をそして私はBOOL
結果を与えるこれをからstatusCode(NSNumber
)を比較する方法があります:
- (BOOL)isSuccess {
return [self.statusCode isEqualToNumber:[NSNumber numberWithInt:kApiSuccessCode]];
}
私はこのように合成NSNumber
プロパティがあります。
@property (nonatomic, strong) NSNumber *statusCode;
問題が発生しました。実行が中断されました。理由:EXC_BAD_ACCESS
このコードを実行するとエラーが発生します。なぜ?これはint値を比較する悪い方法ですか?おかげで解決しよう
:
は、私がNSLog
にBOOL
値すなわちNSLog(@"Does this work? %@", [response isSuccess])
をしようとする基本的なミスを作っていたが判明します。つまり、コード自体は機能しますが、これをより効率的にするための提案について皆様に感謝しています。
これを理解したら、代わりにこれをお勧めします: 'return [self.statusCode intValue] == kApiSuccessCode; – lnafziger