在Swift 1.2中解析复合查询

时间:2015-04-15 14:07:28

标签: ios xcode swift parse-platform

我有这个查询

var postsExploreQuery = Post.query()
postsExploreQuery!.whereKey("isPrivate", equalTo: false)

var query = PFQuery.orQueryWithSubqueries([postsExploreQuery])
query.whereKey("isPublished", equalTo: true)

return query

和Xcode显示错误

  

无法调用' orQueryWithSubqueries'使用类型'([PFQuery?])'

的参数列表

我做错了什么:(

2 个答案:

答案 0 :(得分:1)

你真的应该放弃在所有选项之后加!的习惯。这消除了选项旨在为您提供的所有安全性。除非设计不当,否则您使用的API将返回可选项。使用if let安全打开您的选项。这样就减少了程序将来随机崩溃的可能性,并且如果对你的程序有意义,还可以使用else来处理错误。

var postsExploreQuery = Post.query()
if let postsExploreQuery = postsExploreQuery {
    postsExploreQuery.whereKey("isPrivate", equalTo: false)

    var query = PFQuery.orQueryWithSubqueries([postsExploreQuery])
    query.whereKey("isPublished", equalTo: true)

    return query
}

答案 1 :(得分:-1)

我的猜测是orQueryWithSubqueries期望一组非选项,所以你可能必须把它写成:

var query = PFQuery.orQueryWithSubqueries([postsExploreQuery!])