将PFObject设置为UILabel

时间:2014-08-05 14:59:33

标签: ios parse-platform pfquery

我创建了一个名为UserInfo的PFObject。一切都正确地保存到Parse,但是当我去检索它时,我一直都会遇到错误。以下是我的代码。

PFQuery *query = [PFQuery queryWithClassName:@"UserInfo"];
[query whereKey:@"user" equalTo:currentUser];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (error) {
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    } else {
        self.userInfo = objects;
        NSLog(@"%@", self.userInfo);

        self.locationDisplay.text = [self.userInfo valueForKey:@"location"];

    }
}];

出现错误的NSLog输出如下:

-[__NSArrayI length]: unrecognized selector sent to instance 0x9aa2be0 

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

查询findObjectsInBackgroundWithBLock:将数组存储在objects

完成此操作后,您可以将属性userInfo设置为使用

行指向此数组
self.userInfo = objects;

所以基本上这里,self.userInfo包含对数组的引用。

当您尝试设置标签时,直接在阵列上调用方法valueForKey:。我相信你想在这个数组中的一个对象上调用这个方法。

您可以尝试将线路更改为:

self.locationDisplay.text = [[self.userInfo firstObject] valueForKey:@"location"];

将在数组的第一个对象上查找键@"location"的值,该值应为PFObject

注意:在调用此行之前,您应首先测试objects不是空数组,否则您可能会尝试在valueForKey:对象上调用nil,如果数组为空