0

我正在使用 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.");
}}];

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

4

2 回答 2

0

尝试声明top5Array为块变量:

__block NSMutableArray *top5Array = [[NSMutableArray alloc] init];
于 2013-10-10T01:26:15.897 回答
0

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

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

马丁·雷巴克“

请在下面的链接中参考上述解决方案的原件

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

于 2014-09-15T10:16:16.267 回答