Статическая функция возврата UIView обнаруживает ошибку SIGBART (SWIFT) - PullRequest
0 голосов
/ 11 октября 2019

Я столкнулся с проблемой создания статической функции класса

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

, вот мой код

class Helper { 
    static func getCustomKeyboard() -> CustomInputView {
       let inputView = UINib(nibName: "CustomInputView", bundle: nil).instantiate(withOwner: self, options: nil).first as! CustomInputView
       return inputView
    }
}

Когда я вызываю эту функцию в другом UIViewController, UIView или UITableViewCell, появляется ошибка SIGBART.

Однако, если я вызываю следующий код непосредственно из его собственного VC или UIView, ошибки не возникает.

let inputView = UINib(nibName: "CustomInputView", bundle: nil).instantiate(withOwner: self, options: nil).first as! CustomInputView

Теперь я создаю каждое расширение компонента UIKit. ,Таким образом, ошибка также не выйдет.

Итак, моя проблема в том, могу ли я создать вспомогательную функцию, которая является единственной и может вызываться из любого места без ошибки SIGBART?

Спасибо

1 Ответ

1 голос
/ 11 октября 2019

Я думаю, что проблема может заключаться в том, что вы передаете "я" как владелец методу "создания экземпляра". В статическом методе «self» - это сам класс Helper. Попробуйте передать «nil» в качестве владельца или если вы хотите, чтобы компонент, использующий пользовательскую клавиатуру, был владельцем, передайте его в качестве параметра «getCustomKeyboard».

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