如何从Parse检索数据到NSArray

时间:2014-05-22 20:52:56

标签: ios objective-c parse-platform

我正在尝试将数据从Parse转换为NSArray。这是我的代码:

 PFQuery *query = [PFQuery queryWithClassName:@"Messages"];

[query orderByDescending:@"createdAt"];

[query includeKey:@"message"];


[query whereKey:@"Reciever" hasPrefix:@"jbokwxguy"];
        [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (!error) {
            // The find succeeded.
            NSLog(@"Successfully retrieved %d scores.", objects.count);
            // Do something with the found objects
            for (PFObject *object in objects) {
                NSLog(@"%@", object.objectId);
                PFObject *post = object[@"body"];
                NSLog(@"retrieved related post: %@", post);
            }
        } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }

}];

_messages = [[NSArray alloc] initWithObjects:
          @"Hello, how are you.",
          @"I'm great, how are you?",
          @"I'm fine, thanks. Up for dinner tonight?",
          @"Glad to hear. No sorry, I have to work.",
          @"Oh that sucks. A pitty, well then - have a nice day.."
          @"Thanks! You too. Cu soon.",

          nil];

[super awakeFromNib];

}

我正在尝试从以下位置获取帖子数据:

NSLog(@"retrieved related post: %@",post);

进入_messages,这是一个NSArray。我正在创建一个简单的聊天应用程序,这是我唯一的绊脚石。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

快速了解您的代码看起来不错。我可以假设查询返回空...在假设您的代码被破坏之前检查查询结果...尝试:


[query whereKey:@"Reciever" hasPrefix:@"jbokwxguy"];
        [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
           NSLog(@"Array: %@", objects);               
}];

如果此代码显示控制台中的对象,则设置为...如果不是,则错误应该在查询中:

提示:也许" hasPrefix:@" jbokwxguy"];"返回零结果? 也可能是" Reciever"应该拼写" Receiver" ???

如果您没有获得结果,请尝试删除查询约束并尝试获取所有对象并从那里开始......

您还可以尝试使用objects.count来查看数组中有多少个对象。

请注意,您要回来了:PFObject ......所以您可能需要深入了解内容......

BTW:作为聊天应用。也许这种方法不是那里最好的解决方案..它可能很慢......它可以作为一个评论系统,但对于聊天,整个解析数据库的事情......可能太慢,无法进行可靠的聊天..任何这只是我的意见!您可以查看一些IP流媒体解决方案......


评论更新: (我无法发表评论,所以我会在这里更新我的答案):

你将得到一个PFObject的NSArray ..所以为了检索你的帖子的内容,你需要从PFObject中获取属性......你应该通过所有PFObject迭代并提取"主体"来自PFOBject的财产如下:

[query whereKey:@"Reciever" hasPrefix:@"jbokwxguy"];
 [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    for (PFObject *object in objects) {
        NSString *post = [object objectForKey:@"body"];
        NSLog(@"retrieved related post: %@", post);
    }                
  }];

如果它没有给你带来" BODY"检查你的拼写和"身体的存在"解析数据库中的字段。

**如果这回答了您的问题,请将答案标记正确。它帮助我继续帮助其他人。谢谢!