Ich habe einen Code, den ich versuche, als Block zu schreiben, um zu lernen.iphone - Block funktioniert nicht wie erwartet
Ich habe dieses NSMutableArray, das eine Sammlung von NSDictionary-Objekten ist. In jedem Wörterbuch befindet sich ein NSString-Objekt, das dem Schlüssel "time" zugeordnet ist. Ich versuche herauszufinden, ob eine bestimmte Zeit in diesem Wörterbuch vorhanden ist. Wenn ich nicht Blöcke mit würde ich dies tun:
for(NSDictionary* obj in allTimes) {
double aValue = [[obj objectForKey:@"time"] doubleValue];
if (time == timeX)
[self doStuff];
}
mit Blöcken ...
__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;
}
}];
aber dies ist nie etwas zu gründen. Alle "aValue" kommen als Null und alle [obj objectForKey: @ "time"] kommen als leere Strings.
Das Problem kann sein, dass Sie versuchen, doppelt mit% @ zu drucken, haben Sie versucht, es zu debuggen? – vodkhang
Log den obj. Vielleicht ist es aus irgendeinem Grund nichts. – ughoavgfhw
@vodkhang, nein Ich drucke den String-Wert, nicht den doppelten aValue. – SpaceDog