2016-10-14 49 views
1

在解析首先,我用它從它的方法獲得AnyObject,我可以使用objectForKey方法從那裏訪問所有對象。但現在AnyObject更改爲Any使用AnyObject類型從快速分析和訪問對象3

PFCloud.callFunction(inBackground: apiName.rawValue, withParameters: paramsDict) { (object, error) in 
      completion(object, error as? NSError) 
     } 

現在在這裏完成在對象類型任何和我訪問它像

(object as AnyObject).object(forKey: "cleanPref") as? Bool 

這似乎並不適當,如果我使用任何類型的那麼我需要做的像

if let object = object as? [String: Any] { 
if let pref = object["cleanPref"] as? Bool { 
    } 
} 

是正確的方法嗎?任何其他解決方案,以保持AnyObject然後任何因爲有很多的代碼需要改變,如果我將AnyObject遷移到任何。

+1

是的,我t比較好。 –

回答

1

是it's更好做,因爲你做了,但,但我會改變的事情:

相反的:

if let pref = object["cleanPref"] as? Bool { 
} 

用途:

guard let pref = object["cleanPref"] as? Bool else { // Some error } 

你也可以添加多個條件:

guard let pref = object["cleanPref"] as? Bool, 
     let test = object["test"] as? String else { // Some error }