我创建了一个名为 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
提前感谢您的帮助!
最佳答案
查询findObjectsInBackgroundWithBLock:
在 objects
中存储一个数组.
完成后,您可以设置属性 userInfo
用行指向这个数组
self.userInfo = objects;
所以基本上在这里,self.userInfo
持有对数组的引用。
当您尝试设置标签时,您调用方法 valueForKey:
直接在阵列上。我相信您想在此数组内的对象上调用此方法。
您可以尝试将行更改为:
self.locationDisplay.text = [[self.userInfo firstObject] valueForKey:@"location"];
这将查找键值 @"location"
在数组的第一个对象上,它应该是 PFObject
.
注意:您应该首先测试 objects
在调用此行之前不是空数组,否则您可以尝试调用 valueForKey:
在 nil
上对象,如果数组为空。
关于ios - 将 PFObject 设置为 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142060/