解析PFQuery whereKey:notEqualTo不适用于PFUser对象

时间:2015-02-11 00:41:48

标签: ios debugging parse-platform crash pfquery

我认为这是Parse中的一个错误,但我不知道在哪里举报。

我正在使用Parse和Swift。我有PFQueryTableViewController

在我的queryForTable函数中,我 CAN 使用以下查询就好了:

query.whereKey(kHWActivityFromUserKey, equalTo: User.currentUser())

但是,当我将equalTo更改为notEqualTo时,就像这样:

query.whereKey(kHWActivityFromUserKey, notEqualTo: User.currentUser())

...然后表格保持空白,什么都不做。 (它甚至不显示空行。)

我试图找出发生了什么,所以我接受了该查询,并手动调用了findObjectsInBackgroundWithBlock,以查看块内的objectserror。令人惊讶的是,该块从未被调用过!

然后我在主线程上运行查询,如下所示:

    var error = NSErrorPointer()
    var objects = query.findObjects(error)

当我运行此程序时,我的整个应用程序崩溃时出现以下异常:

2015-02-11 13:26:45.339 HDWR[18996:3057150] 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: 'Couldn't create cache key from 
<PFUser: 0x7f8e885de7c0, objectId: X7lSc1Gajm, localId: (null)> {
...

因此,每当我使用whereKey:notEqualTo PFObject时,我认为存在与缓存相关的错误。

我还尝试在查询中使用objectId字符串,如下所示:

    query.whereKey(kHWActivityFromUserKey, notEqualTo: User.currentUser().objectId)

但是Parse只给了我一个指针错误:

2015-02-11 13:45:46.550 HDWR[19708:3069545] 
Error: pointer field fromUser needs a pointer value (Code: 102, Version: 1.6.0)

如何向Parse报告此错误?或者您对解决方法有任何想法吗?我们需要在我们的应用程序中使用此逻辑。

1 个答案:

答案 0 :(得分:0)

这是Parse iOS SDK中的一个错误,版本1.6.1。它似乎已在1.6.2中修复。