У меня есть функция, которая принимает объект json, содержимое которого может быть любого типа (словаря, массива, строки и т. Д.) И изменяет объект на основе этого типа.swift: изменить словарь на месте
В надуманном примере функции «foo» ниже, как я могу изменить словарь на месте? Я получаю сообщение об ошибке компилятора:
error: '@lvalue $T6' is not identical to '(String, String)'
Вот функция
func foo (var item: AnyObject) {
// ... other logic that handles item of other types ...
// here I know for sure that item is of [String:String] type
(item as? [String:String])?["name"] = "orange"
// error: '@lvalue $T6' is not identical to '(String, String)'
}
var fruits = ["name": "apple", "color": "red"]
foo(fruits)