在 iOS 7 中从 Parse PFObject 中提取数据

Posted

技术标签:

【中文标题】在 iOS 7 中从 Parse PFObject 中提取数据【英文标题】:Extract data from Parse PFObject in iOS 7 【发布时间】:2013-10-08 08:45:47 【问题描述】:

我正在使用 Parse.com 在我的应用程序中存储数据。 我在 Parse 上有一个名为 TestScore 的课程。其中有测试、分数和用户名字段。 现在我想获得前 5 名得分手并将它们保存到 NSUserDefaults 中。 这是我的代码

PFQuery *query = [PFQuery queryWithClassName:@"TestScore"];
[query whereKey:@"test" equalTo:test];
[query orderByDescending:@"score"];
query.limit = 5;

NSMutableArray *top5Array = [[NSMutableArray alloc] init];

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)

if (!error)

    NSMutableArray *score = [[NSMutableArray alloc] init];
    NSMutableArray *userName = [[NSMutableArray alloc] init];
    for (PFObject *object in objects)
    
        [score addObject:[object valueForKey:@"score"]];
        [userName addObject:[object valueForKey:@"userName"]];
    
    [top5Array addObject:score];
    [top5Array addObject:userName];

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setObject:top5Array forKey:@"Top5"];
    [userDefaults synchronize];


else

    NSLog(@"Error while getting top 5 Scorers.");
];

但是,不幸的是它不起作用。我通过它进行了调试,实际上控制并没有进入查询块。 谁能帮忙,拜托!

【问题讨论】:

您是否在您的应用中成功地尝试了 Parse 的其他查询? 请记住,代码在后台运行在单独的线程中,因此实际进入块可能需要一段时间。你在你的应用委托中做了 [Parse setClientId:applicationId:] 吗? @pixelcdv 是的,我之前已经成功尝试过一些查询。 @Eric Amorde 是的,我确实设置了 AppID 和 ClientKey 查看您的代码,它应该可以工作。我想到的是 test 与您要查询的 Parse 类的键的数据类型不同。此外,在您的块中,验证 objects NSArray 是否包含以下内容:if (!error && [objects count]) 【参考方案1】:

尝试将top5Array 声明为块变量:

__block NSMutableArray *top5Array = [[NSMutableArray alloc] init];

【讨论】:

【参考方案2】:

“实际上你可以将自定义对象保存到 NSUserDefaults,但你必须首先使用 NSKeyedArchiver 将其转换为 NSData。为此,你的自定义对象必须实现 NSCoding 协议。看看我创建的这个库,它添加了 NSCoding支持解析对象:

https://github.com/martinrybak/Parse-NSCoding

马丁·雷巴克 "

请参考以下链接中上述解决方案的原文

https://www.parse.com/questions/how-to-save-parse-returned-data-into-nsuserdefaults

【讨论】:

以上是关于在 iOS 7 中从 Parse PFObject 中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中保存 PFObject 列表?

在 Swift 中子类化 PFObject

iCarousel + Parse:从 PFObject 加载异步图像

将 PFObject 的数量保存到多行

如何避免 Parse iOS 中的数据重复?

没有 PFObject 的 PFFile - 解析