Mam NSArray wypełnioną bools (wyrażone jako liczba) i muszę sprawdzać, czy każdy obiekt w tablicy jest równa 1. W jaki sposób można to zrobić?NSArray wypełnione bool obiektów
Odpowiedz
BOOLy nie są obiektami. Zakładając, że masz na myśli jakiś obiekt reprezentujący boolean, taki jak NSNumber, który implementuje poprawne isEqual:
, możesz po prostu zrobić coś takiego jak [array containsObject:[NSNumber numberWithBool:YES]]
.
wow. Nie wiedziałem, że można z tego skorzystać. Dzięki!!! –
Jak mówi Chuck, użyj -[NSArray containsObject:[NSNumber numberWithBool:YES]]
. Jako eksperymentu myślowego, oto kilka innych sposobów, aby osiągnąć cel ...
Można to zrobić za pomocą NSPredicate
lub korzystając z nowych bloków API:
NSArray *myArr //decleared, initialized and filled
BOOL anyTrue = [myArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"boolValue == 1"]].count > 0;
lub
BOOL anyTrue = [myArray indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
if([obj boolValue]) {
*stop = YES;
}
return [obj boolValue];
}].count > 0;
Możesz także użyć kodowania kluczem wartości, ale nie jestem pewien jego względnej wydajności:
[[myArray valueForKeyPath:@"@sum.boolValue"] integerValue] > 0;
Ta wersja z kodem bool-summing jest genialnie przerażająca. – Chuck
@ Chuck, tak, byłbym trochę zirytowany, musiałem przeczytać każde z tych rozwiązań w prawdziwym kodzie. Jednak zabawne małe ćwiczenia programowania mózgu. –
- 1. Filtrowanie NSArray obiektów NSDictionary przy użyciu NSPredicate
- 2. Inicjalizuj tablicę obiektów za pomocą NSArray
- 3. utworzenie pustej NSArray
- 4. Konwersja NSArray na NSDictionary
- 5. Sortowanie NSArray obiektów niestandardowych według ich właściwości NSDate
- 6. Ocena NSPredicate na NSArray (bez filtrowania)
- 7. Kręgi wypełnione rysunkiem iOS
- 8. narysuj wypełnione koło
- 9. Różnice między [NSArray arrayWithArray:] i [NSArray copy]
- 10. NSArray initWithObjects: nie załadunek
- 11. Udowodnienie F (f BOOL) = bool
- 12. Cel-C: BOOL kontra bool
- 13. Zapisywanie NSArray
- 14. spłaszczyć NSArray
- 15. usuwanie duplikatów w nsarray
- 16. NSArray zawiera metodęObject
- 17. Krzywe wypełnione gnuplotem z paletą
- 18. Socket.Disconnect (bool ponowne)
- 19. przekonwertować std: wektor NSArray
- 20. initWithCapacity: w NSArray
- 21. Czy NSArray kopiuje obiekty?
- 22. Sortuj NSArray z sortedArrayUsingComparator
- 23. NSArray dodawanie elementów
- 24. Sortuj NSArray zawierających AAO
- 25. Sum NSArray z NSDecimalNumbers
- 26. Wielowymiarowy obiekt NSArray
- 27. Wysyłaj NSArray do javascript
- 28. NSArray objectAtIndex: skrótowym
- 29. NSString z NSArray
- 30. Generowanie permutacji elementów NSArray
co do ciebie? masz na myśli obiekt bool? –
wpis edytowany do ans. pytanie –
Czy próbujesz dodać ints do NSArray? ponieważ tego nie można zrobić. –