findObjectsInBackgroundWithBlock: Ruft Daten von Parse ab, aber Daten sind nur innerhalb des Blocks vorhanden

In der folgenden Testklasse habe ich versucht, Daten aus Parse abzurufen:

-(void)retrieveDataFromParse
{
    PFQuery *query = [PFQuery queryWithClassName:@"TestObject"];

    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if(!error){
            for (PFObject *object in objects){
                NSString *nameFromObject = [NSString stringWithFormat:@"%@", [object objectForKey:@"Name"]];
                NSString *dateFromObject = [NSString stringWithFormat:@"%@", [object createdAt]];
                NSString *scoreFromObject = [NSString stringWithFormat:@"%@", [object objectForKey:@"Score"]];
                [self addNewScore:scoreFromObject andDate:dateFromObject forUserName:nameFromObject];
                NSLog(@"The dictionary is %@", self.scoreDictionary); //<-- here it works printing out the whole dictionary
            }
        } else {
            NSLog(@"Error: %@ %@", error, [error userInfo]);
        }
    }];
    NSLog(@"The dictionary is %@", self.scoreDictionary); //<- but after the block is called, here the dictionary is again empty...
}

Nach dem kommentierten Abschnitt im Code, wenn ich druckeself.scoreDictionary Innerhalb des Codes funktioniert es einwandfrei und ich sehe mein gesamtes Wörterbuch, während es inkrementell gefüllt wird. Wenn ich das Wörterbuch jedoch nach dem Blockende erneut drucke, ist es jetzt leer. Ich habe die Abfrage-API-Dokumente zweimal überprüft, bin mir aber immer noch nicht sicher, was ich falsch mache.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage