Jaki jest najkrótszy sposób na przekazanie listy BOOL do metody w celu-c? (tj. bez konieczności konfigurowania wpisów w tablicy NSArray przy użyciu NSNumber do ich zawijania).
Tło: chcę wywoływać metodę testową wiele razy w teście jednostkowym, więc chcę skrócić sposób skutecznego powiedzenia:
[myCustomObject compareWithBools:[TRUE, FALSE, TRUE, TRUE, TRUE]]
W metodzie odbierającej „CompareWithBools” mogę wstawić wiersze kodu, aby ponownie wykonać masaż, aby móc porównać, jednak po prostu chciałem mieć ładną krótką linię w testach, które mogę wywołać ...
Odpowiedzi:
1 dla odpowiedzi № 1Pomiń NSNumber
opakowanie z makrem?
#define Greg_BOOLFromNSString(s) ([(s) isEqualToString:@"YES"])
[myCustomObject compareWithStrings:[NSArray arrayWithObjects:@"YES", @"NO", @"YES", @"YES", @"YES", nil]];
4 dla odpowiedzi nr 2
takie podejście jest dość łatwe
- (NSComparisonResult)compareWithBools:(BOOL*)bools /* << a pointer to an array of BOOLs, which is owned by the caller */
count:(NSUInteger)count; /* << the number of elements in @a bools */
2 dla odpowiedzi nr 3
Podaj liczbę całkowitą i porównaj oddzielne bity tej liczby całkowitej:
[myCustomObject compareWithBools:13]; // which will be a sequence of 1011