Parse- [query findObjectsInBackgroundWithBlock:^。)];阻止不执行w / Action Extension

时间:2015-11-20 07:14:05

标签: ios objective-c cocoa parse-platform ios-app-extension

我正在尝试为iOS9.1开发和Action Extension,它应该向Parse查询一些数据。

我在扩展程序中添加,启用并测试了Parse,并且我成功创建了测试对象并检查了当前用户。

我无法在Parse的查询方法中获取代码 [query 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];
        }
    }];**
}

2 个答案:

答案 0 :(得分:0)

从Parse获取对象有一些限制。 Read Here

一个人有获得100个对象的限制,但是从1到1000的任何东西都有一个有效限制。

您必须再次为下一个对象的查询设置限制,并跳过PFQuery的属性。

您必须反复查询,直至达到总计数。

例如 - 如果要获取3000个对象,则必须查询3次,并且计数为1000。

[self queryParse];阻止内召唤dispatch_async(dispatch_get_main_queue(), ^{ });

希望这可能会锻炼。

答案 1 :(得分:0)

这只是12小时折射马拉松的结果:-(

当我将queryParse调用移动到自己的方法中时。我失去了

的定义
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -new-instance

基本上发送了一个错误的查询...我不知道为什么它不会返回错误但是我现在可以检查它。

谢谢大家的帮助!