我正面临着这个奇怪的问题,不确定为什么。我有一个类View
,它具有协议的委托变量:
class View: UIView {
weak var delegate : SampleProtocol?
}
protocol SampleProtocol: Class { }
现在,View
该类是另一个类的父类:
class AnotherView : View
在Objective-C类中创建IBOutlet
of时AnotherView
,它也无法访问该delegate
变量,并且在swift.h文件中也不可见。
有人可以在这里解释我做错了吗?
@objc
如我在评论中所述,您需要定义可被Objective-C读取的协议
@objc protocol SampleProtocol: class { }
之后,您必须在.m中添加此行
#import "YourProjectName-Swift.h"
完整代码
import UIKit
@objc protocol SampleProtocol: class { }
class View: UIView {
weak var delegate : SampleProtocol?
}
class AnotherView : View{
}
传统部分没有副作用,已经过测试
现在,您可以View
毫无问题地访问类的委托属性,如该图片所示
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句