Почему я не могу обновить объект в массиве, используя вспомогательную переменную? - PullRequest
0 голосов
/ 21 мая 2019

Я прошу это из любопытства понять Свифта.

Я пытаюсь обновить объекты в массиве, расположенном в другом классе.

У меня есть два случая (другой работает, а другой нет)

  1. Рабочий раствор:
    Data.tripModels[0].title = "lol"
  1. Не работает:
    var trip = Data.tripModels[0]
    trip.title = "lol"

Чтобы помочь вам понять:

    Data = the other class
    tripModels = the array in Data class, holding the objects
    title = a property of tripModel in tripModels array

Почему 2. не работает? (

1 Ответ

1 голос
/ 21 мая 2019

2. не работает, потому что из-за семантики значений (тип tripmodel является структурой) строка

var trip = Data.tripModels[0] 

назначает копию изэлемент в массиве равен trip, а

trip.title = "lol"

обновляет копию, но не элемент в массиве.

Пожалуйста, прочитайте Структуры и перечисления являются типами значений в Swift Language Guide

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...