在Parse数据库

时间:2016-03-18 06:47:51

标签: ios swift parse-platform pfquery

我有一个"事件" Parse DB中有两个指针,叫做" Feature"和"网络"。见下文参考:

enter image description here

我想从Event类中检索具有所选特征数组和所选网络的对象。 我尝试按以下方式进行查询:

func getEventsByFilter(networks: [Network]?, features: [Feature]?,completion: (events: [Event]?, error: NSError?) -> ()) {
    let query = PFQuery(className:"Event")
    query.whereKey("feature", containedIn: features!)
    query.whereKey("network", containedIn: networks!)

但是,我收到以下错误,查询返回Events类中的所有事件: [错误]:抓住" NSInvalidArgumentException"有理由" JSON写入中的类型无效(MyApp.Network)":

有关如何重写查询以便我可以获取所选网络中的事件并具有所选功能的任何建议吗?

任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:1)

确保功能和网络是一个字符串数组(用于objC的NSStrings)。

解析密钥总是String类型,可以是objectID,也可以是存储的任何键值。

修改

忘记添加" containsIn:"解析将期望一个字符串数组作为参数。

PFQuery *categoryQuery = [PFQuery queryWithClassName:kClassnameCategory];
[categoryQuery whereKey:kKeyCategoryName equalTo:self.listCategory];
[categoryQuery getFirstObjectInBackgroundWithBlock:^(PFObject * category, NSError * _Nullable error) {

上面的代码[categoryQuery whereKey:equalTo:]期望一个String用于查找匹配的两个参数,因为所有Parse键都是字符串。在containsIn:的情况下,它会期待一个字符串数组。