【发布时间】:2014-09-19 19:45:11
【问题描述】:
场景
我已经在一个项目中使用 parse.com 框架超过 6 个月了。看起来它非常有问题并且充满了错误,但如果我以正确的方式做这件事,我需要知道这一点。我正在尝试使用 PFQueryTableViewController 向用户显示类似的用户信息。我用代码...
-(PFQuery *)queryForTable {
PFQuery *matchQuery = [PFUser query];
[matchQuery whereKey:@"mostCommon" equalTo:[PFUser currentUser][@"mostCommon"]];
[matchQuery whereKey:@"userID" notEqualTo:currentUserID];
return matchQuery;
}
问题
当我运行它并尝试将此 PFQTVC 推送到堆栈上时,我收到此错误消息...
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot do a comparison query for type: (null)'
这通常与没有在数据库中设置您的信息有关。我提供下面的图片来说明数据浏览器中确实存在 IS 数据。
问题
如果查询是正确的,并且数据在那里...... 那么为什么应用程序崩溃?
【问题讨论】:
-
“userID”是用户表中的实际列吗?
-
是的。我在上面的代码中设置了断点,它在“[matchQuery whereKey:@"mostCommon" equalTo:[PFUser currentUser][@"mostCommon"]];" 之后崩溃行代码。出于某种原因,它只是不喜欢那样。但我不知道为什么。
-
你能不能 NSLog(@"%@", [PFUser currentUser]);
-
哇!您正在做某事...我注销了当前用户,但“最常见”字段不存在!...这真的很奇怪。因为它是在 parse.com 上的数据浏览器中设置的。是什么赋予了?为什么我从设备查询时没有显示?
-
[[PFUser currentUser] objectForKey:@"mostCommon"];你必须使用objectForKey:
标签: ios parse-platform