2015-04-15 52 views
0

解析複合查詢我有這個疑問在雨燕1.2

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

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

return query 

和Xcode中顯示我錯誤

不能援引 'orQueryWithSubqueries' 類型的參數列表 '([PFQuery?])'

什麼我'做錯了:(

回答

1

你真的應該走出把!所有自選後的習慣。這消除了可選項旨在爲您提供的所有安全性。除非它設計得不好,否則你使用的API會返回一個可選的原因。使用if let安全地打開可選件。這消除了您的程序將來會隨機崩潰的機會,並且如果程序對您的程序有意義,還可以讓您有機會處理錯誤。

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

我的猜測是,orQueryWithSubqueries預計,非自選的數組,所以你可能需要把它寫成:

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

This Works! tnx –

+0

鼓勵人們在每個選項都不太理想之後用'!'胡椒粉代碼。 – Lance

+0

@Lance作爲一般規則,我完全同意你的觀點,我通常不鼓勵使用強制解包和隱式解包。在這種情況下,他已經在第二行使用了強制展開算子,所以我根本不會鼓勵 - 也考慮到變量是在第一行中初始化的。 – Antonio