Я пытаюсь получить доступ к функции моего FirstVC
из другого класса, который реализует поведение перетаскивания в моем приложении.
Что мне нужно сделать, это установить свойство .isEnable
нажмите true
в конце операции перетаскивания.
Если я делаю это, например, из vieDidLoad () класса FirstV C, все работает нормально.
override func viewDidLoad() {
super.viewDidLoad()
copyDataButton.isEnabled = true
}
Если вместо этого я хочу сделать то же самое из другого класса, используя функцию: (объявлено в FirstV C Class)
func refreshInstallButton() {
copyDataButton.isEnabled = true
}
И я вызываю эту функцию из Drag and Drop NSView Class:
let mainVC = ViewController()
override func performDragOperation(_ sender: NSDraggingInfo) -> Bool {
guard let pasteboard = sender.draggingPasteboard.propertyList(forType: NSPasteboard.PasteboardType(rawValue: "NSFilenamesPboardType")) as? NSArray,
let path = pasteboard[0] as? String
else { return false }
//GET YOUR FILE PATH !!!
self.filePath = path
userDef.set(path, forKey: "selectedSource")
Swift.print("FilePath: \(path)")
mainVC.refreshInstallButton()
return true
}
Я получаю эту ошибку:
Поток 1: Неустранимая ошибка: неожиданно найден ноль при развертывании Необязательное значение
Я не знаю, почему это происходит только тогда, когда я вызываю действие из другого класса. Кто-то знает, что я делаю не так?
Я использую Swift 4 - macOS - XCode