Ho un NSArray pieno di bool (espresso come un numero) e ho bisogno di testare per vedere se qualche oggetto all'interno dell'array è uguale a 1. Come posso farlo?NSAray pieno di oggetti bool
risposta
BOOL non sono oggetti. Supponendo che tu intenda alcuni oggetti che rappresentano un valore booleano come NSNumber che implementa un valore corretto isEqual:
, potresti semplicemente fare qualcosa come [array containsObject:[NSNumber numberWithBool:YES]]
.
wow. Non sapevo che potesse essere usato in quel modo. Grazie!!! –
Come dice Chuck, utilizzare -[NSArray containsObject:[NSNumber numberWithBool:YES]]
. Come un esperimento mentale, qui ci sono alcuni altri modi per raggiungere l'obiettivo ...
Si può fare questo con un NSPredicate
o utilizzando la nuova API di blocchi:
NSArray *myArr //decleared, initialized and filled
BOOL anyTrue = [myArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"boolValue == 1"]].count > 0;
o
BOOL anyTrue = [myArray indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
if([obj boolValue]) {
*stop = YES;
}
return [obj boolValue];
}].count > 0;
Puoi anche utilizzare la codifica Key-Value, anche se non sono sicuro della relativa efficienza:
[[myArray valueForKeyPath:@"@sum.boolValue"] integerValue] > 0;
Questa versione KVC del bool-summing è ingegnosamente spaventosa. – Chuck
@Chuck, sì, sarei solo un po 'irritato di dover leggere una di queste soluzioni in codice reale. Divertente piccolo esercizio di programmazione funzionale del cervello, però. –
- 1. fetchedResultsController.fetchedObjects.count = 0 ma è pieno di oggetti
- 2. Controllo NSAray fuori limite
- 3. Ordina NSAray di oggetti personalizzati in base alle loro proprietà NSDate
- 4. Perché gli oggetti iostream non sovraccaricano l'operatore bool?
- 5. TF30042: il database è pieno
- 6. È possibile verificare se esiste un valore all'interno di un array pieno di oggetti senza loop?
- 7. Il buffer SocketAsyncEventArgs è pieno di zeri
- 8. opzionale Parametro sempre pieno
- 9. Rilevamento dello stack pieno
- 10. SQL trasposizione tavolo pieno
- 11. w3wp.exe Garbage Heap è PIENO di spazio oggetti libero e continua a crescere
- 12. Valore predefinito di BOOL
- 13. Converti bool? per bool in Visualizza
- 14. SQLAlchemy - istanza a pieno carico prima di scollegare
- 15. : gruppo di file primario è pieno
- 16. Perché lo stack è pieno di 0xCCCCCCCC
- 17. AJAX pieno Select2 non selezionabile
- 18. ricorsione troppo pieno utilizzando trampolino
- 19. Come disegnare un poligono pieno?
- 20. C++ BOOL (typedef int) vs bool per prestazioni
- 21. Incompatibilità tra safe bool idiom e operatore esplicito bool
- 22. Convertire complessa condizione bool da stringa a bool in .NET
- 23. Quando BOOL e bool devono essere usati in C++?
- 24. tipo di "Int -> Bool", "INT> Bool -> Int", "INT> String -> INT> Bool"
- 25. BOOL to NSString
- 26. Supporto Bool Oracle SQL
- 27. Perché booleano E bool
- 28. Overloaded Bool/String Ambiguity
- 29. vuoto privato Dispose (bool)?
- 30. C++ sizeof with bool
cosa fai intendi per oggetto bool? –
post modificato per ans. domanda –
Stai provando ad aggiungere un NSArray? perché non può essere fatto. –