我创建了一个名为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
提前感谢您的帮助!
答案 0 :(得分:1)
查询findObjectsInBackgroundWithBLock:
将数组存储在objects
。
完成此操作后,您可以将属性userInfo
设置为使用
self.userInfo = objects;
所以基本上这里,self.userInfo
包含对数组的引用。
当您尝试设置标签时,直接在阵列上调用方法valueForKey:
。我相信你想在这个数组中的一个对象上调用这个方法。
您可以尝试将线路更改为:
self.locationDisplay.text = [[self.userInfo firstObject] valueForKey:@"location"];
将在数组的第一个对象上查找键@"location"
的值,该值应为PFObject
。
注意:在调用此行之前,您应首先测试objects
不是空数组,否则您可能会尝试在valueForKey:
对象上调用nil
,如果数组为空