Sto esaminando le differenze inviate a un progetto da un altro sviluppatore e hanno un sacco di codice che fa !!<some BOOL value>
. In realtà, questo sembra essere il loro modello standard per l'implementazione di getter e setter booleani. Hanno implementato il loro codice come:Objective-C - È !! BOOL Beneficio
- (BOOL) hasId {
return !!hasId_;
}
- (void) setHasId:(BOOL) value {
hasId_ = !!value;
}
Non ho mai visto questo schema, prima, e mi chiedo se non v'è alcun beneficio in usarlo. La doppia negazione sta facendo qualcosa di utile?
l'unica volta che ho visto che era per una classe che non ha un modo semplice per eseguire il cast, quindi non potevano fare 'if (myInstance)', ma ha sovraccaricato l'operatore unario '!' , così avrebbero fatto 'if (!! myInstance)'. Ma nel tuo caso, non ne ho idea. – filipe