1
我得到了「有條件的轉換總是成功」的「as?AnyObject」的警告。那麼「?」這是不需要的!? 如果我刪除,我得到一個錯誤,我必須有「可選」,「?」:斯威夫特:有條件的演員不需要,但「必須」?
func toDictionary() -> [String: AnyObject] {
var retval = [String: AnyObject]()
if let
steeringItems = self.steeringItems as? AnyObject,
destinationPath = self.destinationPath as? AnyObject
{
retval["steeringItems"] = steeringItems
retval["gDstPath"] = destinationPath
}
return retval
}
什麼是正確的方法是什麼?
什麼'steeringItems'和'destinationPath'的類型?聽起來就像你只是想將它們直接分配給字典而沒有任何可選的綁定 - 因爲它們不是可選項,並且可以自由地上傳到AnyObject。 – Hamish
我認爲問題在於你投射到AnyObject,它已經知道,但你應該投射到預期類型的屬性,如String/Int – Scriptable
「AnyObject」完成它所說的事情。這是_任何對象。在不需要的時候投射到'AnyObject'就像將'Fruit'投射到'Anything'一樣。水果是一件東西,所以演員們一定會成功。 – Arc676