Доступ к связанной с IBOutlet функции из другого класса без ошибок - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь получить доступ к функции моего 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

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