【发布时间】:2015-01-08 23:34:52
【问题描述】:
我正在使用后台异步调用在 Parse 中查询某些对象。但是,当查询发生时,应用程序会冻结。我无法与之互动。一旦查询完成并加载了对象,应用程序就会迎头赶上。我的理解是应用程序应该在查询期间做出响应,因为它是一个后台异步任务。
例如,当应用程序加载时,查询开始 -> 如果我在查询期间按回导航栏,则没有任何反应 -> 查询完成并且我的对象出现 -> 应用程序弹出到根控制器以响应早期的接触
查询后应用程序未冻结。它正常响应。 我不确定问题是否出在我的查询位置,手机在解析时会变慢,还是什么。任何帮助将不胜感激!
相关代码:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
//Loads the users to be rated
[self loadNewUsersAndAd];
}
-(void)loadNewUsersAndAd{
self.usersQuery = [PFQuery queryWithClassName:@"UserObjects"];
[self.usersQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
self.queryingForUsers = YES;
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry!" message:@"It looks like we couldn't update your current games! Make sure you're connected to the internet." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alertView show];
self.queryingForUsers = NO;
}
else
{
//The query was successful
self.usersArray = objects;
[self loadNewImages];
self.queryingForUsers = NO;
}
}];
}
【问题讨论】:
-
loadNewImages是做什么的?它会更新 UI 元素吗?如果是,则应在主队列上调度 -
查询从 parse 加载一个 userObject,它有三张与之关联的图片。加载 userObject 后,我通过调用 loadNewImages 使用相关图片更新 UI。我在查询中包含此 UI 更新的问题是什么?如果是这样,我还能怎么做呢?感谢您到目前为止提示我!
标签: ios xcode ios7 parse-platform xcode6