1
「条件付きキャストは常に成功する」という「as any AnyObject」に対して警告が表示されます。そう "?"それは必要ではない! 私が削除した場合、私は、「オプション」が必要であることに、エラーが出る「を?」:Swift:条件付きキャストは不要ですが「必須」ですか?
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'はそれが何をするのかを行います。それは_オブジェクト_です。 'Anything'にキャストする必要はありません。' Fruit'を 'Anything'にキャストするようなものです。フルーツはものなので、キャストは常に成功します。 – Arc676