2
swift2.3からswift3に移植していたため、次の問題が発生しました。Swift 3コンテキストタイプ 'AnyObject'辞書リテラルでは使用できません
下記の関数で値辞書の辞書を返そうとしています。しかし、エラーを取得していますContextual type 'AnyObject' Cannot be used with dictionary literal
私はいくつかの答えを探した後に値をAnyObject
として手作業で試してみましたが、役に立たないです。
typealias Payload = [String: AnyObject]
func toCreatePayload() -> Payload {
let payload: [String: [String:AnyObject]] =
["saving_rule": ["description": title as AnyObject,
"amount": amount! as AnyObject,
"background_color": (backgroundColor?.toHexString())! as AnyObject,
"saving_rule_category_id": category!.remoteId as AnyObject,
"saving_rule_sub_category_id": subCategory != nil ? subCategory!.remoteId : ("" as AnyObject),
"saving_rule_condition_id": condition != nil ? condition!.remoteId : ("" as AnyObject),
"saving_rule_condition_customizations_attributes": customizations.map({$0.toCreatePayload()}) as AnyObject,
"suspended": "false"] as AnyObject
]
return payload as [String:AnyObject]
}
戻り値の型は、 'return payload as [String:AnyObject]'のようにキャストする必要があります。 –
@MaTaKazerタイプキャストは必要ありません。タイプアリアスを '[String:Any]'に変更してください。 – vadian
'AnyObject'から' Any'に変更することによる副作用はありますか?私はこれと混同しています。 –