Доступ к словарю из другого класса, отличного от того, в котором он был создан и добавлен, возвращает пустые результаты - PullRequest
0 голосов
/ 27 октября 2019

У меня есть класс, который берет информацию из текстового поля и добавляет ее в словарь. После этого я вызываю функцию из другого класса, которая добавляет эти элементы словаря к меткам, подключенным к TableViewCell. Проблема в том, что внутри этой функции словарь пустой, но если я распечатываю содержимое в исходном классе, оно показывает содержимое очень хорошо.

var vehicles = [String:String]()

@IBAction func confirmAddVehicle(_ sender: Any) {

    vehicleName = String(vehicleNameTxt.text!)

    vehicleNotes = String(vehicleNotesTxt.text!)

    vehicles[(vehicleName)] = vehicleNotes

    print(vehicles) //Here is where it will correctly show the contents

    AddVehicleToCell().AddVehicleToCellFunc() //Here is the outside function that I call
}

func AddVehicleToCellFunc() {

    print(AddVehicle().vehicles) //Here the output that I get is: [:], instead of the input

}

Если мой ввод для текстового поля, vehicleNameTxt - "Car"и вход для транспортного средстваNotesTxt - «Моя машина», то, что я получаю, когда печатаю результаты из этого класса: [«Автомобиль»: «Моя машина»], что правильно. Однако при вызове из другого класса результат: [:]

1 Ответ

0 голосов
/ 27 октября 2019

Я понимаю вашу проблему, и у меня также были такие проблемы, когда я начал изучать быстрое программирование, поэтому ответ на ваш вопрос здесь:

      var vehicles = [String:String]()

 @IBAction func confirmAddVehicle(_ sender: Any) {

vehicleName = String(vehicleNameTxt.text!)

vehicleNotes = String(vehicleNotesTxt.text!)

vehicles[(vehicleName)] = vehicleNotes

print(vehicles) //Here is where it will correctly show the contents

AddVehicleToCell().AddVehicleToCellFunc(vehicle: vehicles) //Here is the outside function that I call
  }

 func AddVehicleToCellFunc(vehicle:[String:String]) {
  // here in the below statement you are initializing the add vehicle class. that means your vehicle is empty so you need to pass it in the function
// print(AddVehicle().vehicles) //Here the output that I get is: [:], instead of the input
print(vehicle) //this will give you what you want.

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