Как вызвать метод инициализации Swift из Objective-C - PullRequest
0 голосов
/ 09 апреля 2019

Я использовал Xcode 10.1 и использовал SWIFT_VERSION 3.0 в проекте Objective-C.Приведенный ниже код отлично работает с Swift 3.

RichTextEditor.swift:

init(frame: CGRect, editAccess: Int) {
    super.init(frame:frame)
}

Вызовы класса Objective C выше метода:

self.rchTextControl = [[RichTextEditor alloc] initWithFrame:CGRectMake(2, cellRowHeight, tableView.tableView.bounds.size.width-4, cellMessageHeight-cellRowHeight) editAccess:[sectionCtrlEditAccessValue intValue]];

Над кодом Objective Cработал со Swift 3, и как только я изменил его на SWIFT_VERSION 4, произошла следующая ошибка:

enter image description here

Как я могу исправить эту проблему?Я гуглил это, но не мог найти решение.

1 Ответ

1 голос
/ 09 апреля 2019

Вам нужно добавить @objc в объявлении метода, чтобы получить доступ к нему в цели c.как это,

class RichTextEditor : UIView {

override init(frame: CGRect) {
    super.init(frame: frame)
}
@objc init(frame: CGRect, editAccess: Int) {
    super.init(frame:frame)
}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...