解析- [查询 findObjectsInBackgroundWithBlock:^.)];块不执行 w/ 操作扩展
Parse- [query findObjectsInBackgroundWithBlock:^.)]; Block Doesn't execute w/ Action Extension
我正在尝试为 iOS9.1 开发和操作扩展,它应该查询 Parse 以获取一些数据。
我已经在扩展中添加、启用和测试了 Parse,我成功地创建了测试对象并检查了当前用户。
我无法获取 Parse 查询方法中的代码
[查询findObjectsInBackgroundWithBlock:^执行。 LLDB 一直在跳过它,所以我真的很茫然。
此代码在容器应用程序中完美执行,所以我有点困惑。
- (void)viewDidLoad
{
[super viewDidLoad];
[Parse enableLocalDatastore];
[Parse enableDataSharingWithApplicationGroupIdentifier:@"group.com.app.slinky"
containingApplication:@"com.app.Slinky"];
[Parse setApplicationId:@"xxxxx"
clientKey:@"xxxxx"];
for (NSExtensionItem *item in self.extensionContext.inputItems) {
for (NSItemProvider *itemProvider in item.attachments) {
if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypePropertyList]) {
[itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypePropertyList options:nil completionHandler:^(NSDictionary *jsDict, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
NSDictionary *jsPreprocessingResults = jsDict[NSExtensionJavaScriptPreprocessingResultsKey];
NSString *pageTitle = jsPreprocessingResults[@"title"];
NSString *pageURL = jsPreprocessingResults[@"URL"];
if ([pageURL length] > 0) {
self.siteURL.text = pageURL;
self.URLstring = pageURL;
}
if ([pageTitle length] > 0) {
self.siteTitle.text = pageTitle;
}
});
}];
break;
}
}
}
[self queryParse];
}
-(void)queryParse{
PFQuery *query = [self.friendsRelation query];
[query orderByAscending:@"username"];
**[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
NSLog(@"%@ %@", error, [error userInfo]);
} else {
self.friends = objects;
[self.tableView reloadData];
}
}];**
}
从 Parse 获取 Objects 有一些限制。 Read Here
一个人有获得 100 个的限制 objects,但是从 1 到 1000 的任何东西都有一个有效限制。
您必须再次为下一个查询设置限制 objects 并跳过 PFQuery 的属性。
您需要反复查询,直到达到总数。
例如 - 如果您有 3000 objects 需要获取,那么您必须查询 3 次,例如 1000。
或
在 dispatch_async(dispatch_get_main_queue(), ^{ });
块内调用 [self queryParse];
。
希望这能锻炼身体。
这只是 12 小时折射马拉松的结果:-(
当我将 queryParse 调用移动到它自己的方法中时。我丢失了
的定义
self.friendsRelation = [[PFUser currentUser] objectForKey:@"friendsRelation"];
本质上发送了一个错误的查询...我不知道为什么它不是 return 错误,但无论如何我现在都可以检查它。
谢谢大家的帮助!
我正在尝试为 iOS9.1 开发和操作扩展,它应该查询 Parse 以获取一些数据。
我已经在扩展中添加、启用和测试了 Parse,我成功地创建了测试对象并检查了当前用户。
我无法获取 Parse 查询方法中的代码 [查询findObjectsInBackgroundWithBlock:^执行。 LLDB 一直在跳过它,所以我真的很茫然。
此代码在容器应用程序中完美执行,所以我有点困惑。
- (void)viewDidLoad
{
[super viewDidLoad];
[Parse enableLocalDatastore];
[Parse enableDataSharingWithApplicationGroupIdentifier:@"group.com.app.slinky"
containingApplication:@"com.app.Slinky"];
[Parse setApplicationId:@"xxxxx"
clientKey:@"xxxxx"];
for (NSExtensionItem *item in self.extensionContext.inputItems) {
for (NSItemProvider *itemProvider in item.attachments) {
if ([itemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypePropertyList]) {
[itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypePropertyList options:nil completionHandler:^(NSDictionary *jsDict, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
NSDictionary *jsPreprocessingResults = jsDict[NSExtensionJavaScriptPreprocessingResultsKey];
NSString *pageTitle = jsPreprocessingResults[@"title"];
NSString *pageURL = jsPreprocessingResults[@"URL"];
if ([pageURL length] > 0) {
self.siteURL.text = pageURL;
self.URLstring = pageURL;
}
if ([pageTitle length] > 0) {
self.siteTitle.text = pageTitle;
}
});
}];
break;
}
}
}
[self queryParse];
}
-(void)queryParse{
PFQuery *query = [self.friendsRelation query];
[query orderByAscending:@"username"];
**[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
NSLog(@"%@ %@", error, [error userInfo]);
} else {
self.friends = objects;
[self.tableView reloadData];
}
}];**
}
从 Parse 获取 Objects 有一些限制。 Read Here
一个人有获得 100 个的限制 objects,但是从 1 到 1000 的任何东西都有一个有效限制。
您必须再次为下一个查询设置限制 objects 并跳过 PFQuery 的属性。
您需要反复查询,直到达到总数。
例如 - 如果您有 3000 objects 需要获取,那么您必须查询 3 次,例如 1000。
或
在 dispatch_async(dispatch_get_main_queue(), ^{ });
块内调用 [self queryParse];
。
希望这能锻炼身体。
这只是 12 小时折射马拉松的结果:-(
当我将 queryParse 调用移动到它自己的方法中时。我丢失了
的定义self.friendsRelation = [[PFUser currentUser] objectForKey:@"friendsRelation"];
本质上发送了一个错误的查询...我不知道为什么它不是 return 错误,但无论如何我现在都可以检查它。
谢谢大家的帮助!