2016-03-05 6 views
0

Я пытаюсь передать объект массива между 2 контроллерами представления. Но я хочу, чтобы массив был передан как ссылка и не скопирован. Я знаю, что если я использую функцию локально, я могу использовать «inout» и «&» на основе примеров, которые я нашел.Как передать объект массива между контроллерами представления по ссылке

Но я хочу, чтобы я немного отличался. Я хочу назначить массив в VC1 непосредственно объекту Array в VC2 в качестве ссылки. Вот мой код:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if segue.identifier == "vc2" { 

     let vc2 = segue.destinationViewController as! ProfileVC 

     vc2.data = &self.data  //I know this line doesn't work, how would I go about it? 

    } 

} 

ответ

1

Swift массив - это структура, поэтому они будут скопированы.

Простейшим способом было бы использовать объект вместо структуры. Поэтому вместо этого я использовал бы NSMutableArray.

С этим у вас будет вся сила изменчивости на кончиках ваших пальцев ;-)