在执行另一项任务之前,如何确保查询已完成(无论成功与否)。
这是我的viewDidLoad...最后这行代码
NSLog(@"tweets Array %@",self.tweetsArray);
显示 tweetsArray 为空
然而,上面块中的同一行代码显示数组已满。
输出还显示第一个之前的最后一个 NSLog。
我的 tableView 在模拟器上是空白的,因为它在完成运行查询之前调用了 UITableView 方法。
对此的任何帮助都会很棒。
在此先感谢...尼克
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.selectString = self.gamesString;
PFQuery *query = [PFQuery queryWithClassName:@"Parse_Storyw"];
[query whereKey:@"searchName" equalTo:self.gamesString];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// Do something with the found objects
for (PFObject *object in objects) {
NSLog(@"%@", object.objectId);
PFQuery *query = [PFQuery queryWithClassName:@"Parse_Story"];
[query getObjectInBackgroundWithId:object.objectId block:^(PFObject *content, NSError *error) {
PFFile *file = [content objectForKey:@"levels"];
[file saveInBackground];
[file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
NSString *string = [[NSString alloc] initWithData: data encoding: NSMacOSRomanStringEncoding];
self.tweetsArray = [[NSArray alloc] initWithArray:[string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]];
NSLog(@"tweets Array %@",self.tweetsArray);
}];
}];
}
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
self.title = self.selectString;
NSLog(@"tweets Array %@",self.tweetsArray);
}