別の開発者がプロジェクトに投稿した差分を見ていて、!!<some BOOL value>
のコードがたくさんあります。実際、これはブールゲッターとセッターを実装するための標準的なパターンのようです。彼らは次のようなコードを実装しました:Objective-C - Is !! BOOL有益
- (BOOL) hasId {
return !!hasId_;
}
- (void) setHasId:(BOOL) value {
hasId_ = !!value;
}
これまで私はこのパターンを見たことがなく、それを使うことに何か利点があるのだろうかと思っています。二重否定は有用な何かをしていますか?
これは、ブールにキャストするための簡単な方法ではないクラスのためだけだったので、 'if(myInstance)'は実行できませんでしたが、単項 '! '演算子がオーバーロードされました、彼らは 'if(!! myInstance)'を実行します。しかし、あなたの場合、私は考えていません。 – filipe