У меня есть класс DiscoveredSerialNumbers, к которому я хочу получить доступ из различных файлов swift:
class DiscoveredSerialNumbers {
var snConnect: String = ""
}
В моем ViewController я изменяю значение snConnect на основе выбора из представления выбора.
class ViewController: UIViewController, UIPickerViewDataSource,UIPickerViewDelegate {
@IBOutlet weak var SerialNumbers: UIPickerView!
var serialNums: [String] = [String]()
...
override func viewDidLoad() {
...
SerialNumbers.dataSource = self
SerialNumbers.delegate = self
}
...
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let global = DiscoveredSerialNumbers()
global.snConnect = serialNums[row]
print(serialNums[row])
print(global.snConnect)
}
}
Когда я распечатываю новое значение snConnect, установленное в следующей строке:
global.snConnect = serialNums[row]
Сразу после этого я получаю новое обновленное значение snConnect.
Однако, когда я пытаюсь чтобы получить доступ к обновленному значению snConnect в другом файле swift, который управляет другим ViewController в следующем коде:
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
let global = DiscoveredSerialNumbers()
var sn = global.snConnect
...
}
Значение snConnect возвращается к исходному значению, которое "".
Как остановить возврат значения к исходному значению? Я думаю, что это как-то связано со мной при инициализации класса DiscoveredSerialNumbers, но я не знаю, как иначе получить доступ к значению snConnect в другом файле swift.
Редактировать: благодаря комментариям Дона я пытаюсь получить значение snConnect сохраняется между экземплярами запуска приложения. Я хочу установить значение snConnect в главном приложении и получить к нему доступ при запуске расширения основного приложения, в данном случае пользовательского расширения клавиатуры.