Я хочу добавить новый объект к моему массиву, который определяется как var
в моем приложении Swift, но, несмотря на то, что я определял его как var
, при попытке добавить его произошла следующая ошибка.
`Immutable value of type 'Any[]' only has mutating members named 'append'`
Здесь мой код:
var contactsArray: Any[]!
func popoverWillClose(notification: NSNotification) {
if popoverTxtName.stringValue != "" && popoverTxtContactInfo.stringValue != "" {
contactsArray.append(makeDictionaryRecord(popoverTxtName.stringValue, withInfo: popoverTxtContactInfo.stringValue))
}
}
(makeDictionaryRecord(withInfo:)
метод принимает два String
и возвращает Dictionary<String, Any>
)
Мой исходный код определяет contactsArray
как let
, и позже я обнаружил, что это была моя ошибка, поэтому я изменил его на var
. Тем не менее, до сих пор ничего не делалось.
Я также изменил тип компонентов contactsArray
на AnyObject[]
, Any[]
и AnyObject[]!
, но ничего не изменилось вообще.
(При этом, поскольку contactsArray
должен принимать Dictionary
внутри него, он должен быть определен как Any[]
или Any[]!
, так как Dictionary
определяется как struct, если я его понимаю правильно.)
Что случилось с моим кодом? Как правильно добавить компонент в contactsArray
?