Не удается подключить делегат пользовательского протокола из раскадровки в Xcode 6.1
Я только что обновил свой mac до 10.10 и Xcode до 6.1,
Нашел странную вещь, которая о раскадровке,
В моем случае используется проект swift, больше не удается подключить делегат пользовательского протокола из раскадровки.
Старый connected, который поставляется со старой версией Xcode, в порядке, но я больше не могу подключить новый делегат.
Даже я не могу снова подключить старый, как только я удалил подключенный.
У кого-нибудь возникает такая ситуация ??
============================== Обновлено ==============================
Класс Представления
@objc public protocol VideoViewResizeDelegate {
func shouldVideoViewResetLayout(videoView: GvVideoView) -> Bool;
}
@IBOutlet var resizeDelegate: VideoViewResizeDelegate?;
Класс ViewController
@IBDesignable public class ViewController: UIViewController, VideoViewResizeDelegate {
...
}
2 ответа:
Конструктор Интерфейсов
Interface Builder не поддерживает подключение к розетке в Swift файл, если тип розетки-протокол. Объявите тип розетки как AnyObject или NSObject, подключите объекты к розетке с помощью Построитель интерфейса, затем измените тип розетки обратно на протокол. (17023935)
Это отстой...
Сейчас 2017 год....
Используя swift 3, это будет работать:
open class YourClass: UIView { #if TARGET_INTERFACE_BUILDER @IBOutlet open weak var delegate: AnyObject? #else open weak var delegate: YourClassDelegate? #endif }
A предварительное условие :
Ваш Classdelegate должен быть украшен @objc
Например:
@objc public protocol MyDelegate: class { func myFunc() func myFunc2() }
Обновление
Это должно быть исправлено в Xcode 9