У меня есть код, который я пытаюсь написать как блок, ради обучения.
У меня есть этот NSMutableArray, который представляет собой набор объектов NSDictionary. Внутри каждого словаря есть объект NSString, связанный с ключом «время». Я пытаюсь найти, присутствует ли данное время в этом словаре. Если бы я не использовал блоки, я бы сделал это:
for( NSDictionary* obj in allTimes ) {
double aValue = [[obj objectForKey:@"time"] doubleValue];
if (time == timeX)
[self doStuff];
}
с помощью блоков...
__block BOOL found = NO;
[allTimes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
double aValue = [[obj objectForKey:@"time"] doubleValue];
NSLog(@"a value=%@", [obj objectForKey:@"time"] );
if (aValue == timeX) {
*stop = YES;
found = YES;
}
}];
но это никогда ничего не основывает. Все значения "aValue" равны нулю, а все [obj objectForKey:@"time"] представлены пустыми строками.