我正在进行一个项目,我使用parse
版本 1.6.5 和localDataStore
,在AppDelegate
我启用了{{1}喜欢
localDatastore
并且在我的[Parse enableLocalDatastore];
[Parse setApplicationId:@"AppId" clientKey:@"ClientKey"];
我有一个条件是应用程序是否运行第一次,如果是第一次,从服务器检索并将所有对象固定到本地。否则从ViewController
我的代码
localDatastore
问题是第一个应用程序成功运行并在collectionView中显示检索到的对象,而第二次应用程序有一个长时间运行的后台任务,因为我从if ([self isAppLaunchingForFirstTime]) {
PFQuery *query = [PFQuery queryWithClassName:@"Category"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
if (error) {
[[[UIAlertView alloc]initWithTitle:@"Failed!" message:@"error" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil] show];
} else {
if (objects.count) {
[self.categoryArray addObject:objects];
[self.collectionView reloadData];
[PFObject pinAllInBackground:objects block:^(BOOL succeeded, NSError *error) {
if (succeeded) {
NSLog(@"Pinned successfully");
}else {
[[[UIAlertView alloc]initWithTitle:@"Error" message:@"Pinning" delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil] show];
}
}];
} else {
[[[UIAlertView alloc]initWithTitle:@"Alert!" message:@"No Records" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil] show];
}
}
}];
} else {
PFQuery *query = [PFQuery queryWithClassName:@"Category"];
[query fromLocalDatastore];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
if (error) {
[[[UIAlertView alloc]initWithTitle:@"Failed!" message:error.description delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil] show];
} else {
if (objects.count) {
[self.categoryArray addObject:objects];
[self.collectionView reloadData];
} else {
[[[UIAlertView alloc]initWithTitle:@"Alert!" message:@"No Records" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil] show];
}
}
}];
}
检索它检查对于网络连接,它重试5次以获取每个对象。 localDataStore
是否需要网络连接。
错误登录控制台: 这是重复发生36次以获取7个对象的错误。
localDataStore
答案 0 :(得分:0)
您的代码应该可以正常运行。但似乎isAppLaunchingForFirstTime标志在对象成功固定后未设置
答案 1 :(得分:0)
我建议在Parse bug报告中报告此问题:https://www.parse.com/help#