Какъв е най-краткият начин да предадете списък на BOOL на метод в цел-c? (т.е. без да е необходимо да създавате записи в NSArray, като използвате NSNumber, за да ги обвиете).
Предистория: Искам да се обадя на тестов метод многократно в единичен тест, така че искам кратък начин да кажа:
[myCustomObject compareWithBools:[TRUE, FALSE, TRUE, TRUE, TRUE]]
В метода за получаване "compareWithBools" мога да слагам линиите на код за масаж назад, за да мога да сравнявам, но просто исках хубава къса линия в тестовете, които мога да нарека ...
Отговори:
1 за отговор № 1Пропуснете NSNumber
обвивка с макро?
#define Greg_BOOLFromNSString(s) ([(s) isEqualToString:@"YES"])
[myCustomObject compareWithStrings:[NSArray arrayWithObjects:@"YES", @"NO", @"YES", @"YES", @"YES", nil]];
4 за отговор № 2
този подход е сравнително лесен
- (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 за отговор № 3
Преминете цяло число и сравнете отделни битове от това цяло число:
[myCustomObject compareWithBools:13]; // which will be a sequence of 1011