parsingPFQuery whereKey:notEqualTo不能用于PFUser对象
我认为这是Parse中的一个错误,但我不知道在哪里报告。
我正在用Swift使用Parse。 我有一个PFQueryTableViewController
。
在我的queryForTable
函数中,我可以使用下面的查询就好了:
query.whereKey(kHWActivityFromUserKey, equalTo: User.currentUser())
但是,当我将equalTo
更改为notEqualTo
,如下所示:
query.whereKey(kHWActivityFromUserKey, notEqualTo: User.currentUser())
…桌子保持空白,什么都不做。 (它甚至不显示空行。)
我试图找出发生了什么,所以我采取了这个查询,我手动调用findObjectsInBackgroundWithBlock
,查看块内的objects
和error
。 令人惊讶的是,该块从未被称为!
所以然后我在主线程上运行查询,如下所示:
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)> { ...
所以我认为有一个与caching有关的错误,每当我使用whereKey:notEqualTo
PFObject
。
我也尝试在查询中使用objectId
string,如下所示:
query.whereKey(kHWActivityFromUserKey, notEqualTo: User.currentUser().objectId)
但是,然后parsing只是给了我一个指针错误:
2015-02-11 13:45:46.550 HDWR[19708:3069545] Error: pointer field fromUser needs a pointer value (Code: 102, Version: 1.6.0)
我怎样才能把这个bug报告给Parse? 或者你有任何想法的解决方法? 我们需要在我们的应用程序中有这个逻辑。
这是Parse iOS SDK版本1.6.1
中的一个错误。 它似乎是固定在1.6.2
。