PFQuery同步调用工作,异步调用失败

时间:2015-07-23 14:18:48

标签: ios asynchronous parse-platform synchronous pfquery

我是新手使用parse并遇到一些问题,查询我在我的解析类中添加的数据。我的问题是我可以使同步调用([query findObjects])工作,但异步调用([queryInBackground...])却失败了。

以下是两个代码段:

-(void)getAllDataFromParse{
    //simple query works
    PFQuery *query = [PFQuery queryWithClassName:@"wordsDB"];
    [query setLimit: 1000];
    NSArray *objects = [query findObjects];
    }
   //background query not working
   PFQuery *queryInBackground = [PFQuery queryWithClassName:@"wordsDB"];
   [queryInBackground findObjectsInBackgroundWithBlock:^(NSArray *objects2, NSError *error) {
       if (!error) {
           //query succeeds, do something
           }
       } else {
          // Log details of the failure
          NSLog(@"Error: %@ %@", error, [error userInfo]);
       }
  }];
}

此方法在我的mainViewController中调用,调用位于viewDidLoad函数的末尾

[self performSelector:@selector(getAllDataFromParse)];

在调试中,程序到达[queryInBackground findObjectsInBackgroundWithBlock.... ],但在执行时,它会直接跳到方法的末尾。

我看不到任何错误消息。谁能告诉我异步调用出了什么问题?

我已经尝试在模拟器和真实设备上运行它。

1 个答案:

答案 0 :(得分:1)

这是一个异步调用,意味着它将继续在后台运行。它到达方法的最后是完全正常的。

[queryInBackground findObjectsInBackgroundWithBlock:^(NSArray *objects2, NSError *error) {
       if (!error) {
           //query succeeds, do something
           }
       } else {
          // Log details of the failure
          NSLog(@"Error: %@ %@", error, [error userInfo]);
       }
  }];

This may also help.