Вкратце, Я создаю объект, состоящий из целых чисел и массива строк. Я положил что-то в целое число и массив Я положил объект в словарь
Я получаю новую ссылку на объект и пытаюсь добавить к массиву. Здесь он неСсылка Swift на значение с массивами и словарями
//: Playground - noun: a place where people can play
class IdAndArray {
var id: Int = 0
var stringArray:[String] = [String]()
}
var dict:[Int:IdAndArray] = [Int:IdAndArray]()
var testRec = IdAndArray()
testRec.id = 1
testRec.stringArray.append("1 line")
dict[56] = testRec
var ref = (dict[56]?.stringArray)!
print(ref.count) // 1
ref.append("2 line")
var anotherRef = (dict[56]?.stringArray)!
print(anotherRef.count) // 1 instead of 2???
Я подозреваю, что это может быть связано с этим: Implementing a multimap in Swift with Arrays and Dictionaries
Я также подозреваю, что это что-то делать с дополнительными опциями, но я принуждая развертку с!
Для записи, я исхожу из фона java.
Спасибо за образование! Вторая часть работает отлично, но ошибка «(dict [56] ?. stringArray) !. append (« 2 строки »)« вызывает »: не может использовать мутирующий элемент на неизменяемом значении типа« [String] »на игровой площадке, используя xcode 7.01/swift 2.0 –
Хммм. Попробуйте 'dict [56] ?. stringArray.append (« 2 строки »)' вместо. – vacawama
Это сделало трюк. Еще раз спасибо! –