블록 내부에 존재하는 : 나는 self.scoreDictionary
를 인쇄 할 때, 코드 내부의 주석 섹션 당findObjectsInBackgroundWithBlock는 : 구문 분석에서 데이터를 얻을 수 있지만, 데이터는 내가 구문 분석에서 데이터를 검색 사용해 다음 테스트 클래스를 만들어
-(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...
}
코드 안에는 괜찮습니다. 그리고 점진적으로 채워지는대로 전체 사전을 봅니다. 그러나 블록이 끝난 후 사전을 다시 인쇄하면 이제는 비어 있습니다. 나는 쿼리 API 문서를 두 번 확인했지만 여전히 잘못하고있는 것이 확실하지 않습니다.
감사합니다. 특히 스레드를 보여주는 매우 유용한 그림입니다! – daspianist