我有一个我在
Swift中编写的框架,它包含一个扩展UIView并具有IBOutlet属性的类.
从我的Objective-C应用程序可以看到该类,但Interface Builder将看不到IBOutlet.这是代码:
@objc protocol MyFrameworkDelegate { // My delegate methods here ... } @objc class MyFrameworkClass: UIView { @objc @IBOutlet var delegate:MyFrameworkDelegate? // The rest of my class here ... }
我在我的故事板中将我的视图类设置为MyFrameworkClass,但代理插座没有显示.
我尝试使用和不使用@objc修饰符,没有运气.当我从Objective-C检查我的类时,该属性在没有IBOutlet的情况下出现.
还有其他人遇到过类似的东西吗?
编辑
这是Xcode为Swift生成的代码 – > Objective-C转换:
@protocol MyFrameworkDelegate; SWIFT_CLASS("_Nc9a0xD6MyFrameworkClass") @interface MyFrameworkClass : UIView @property (nonatomic) id <MyFrameworkDelegate> delegate; ...
此外,这是我尝试运行应用程序时收到的错误消息:
2014-06-22 21:41:59.095 MyApp Test[75211:17812266] Unknown class MyFrameworkClass in Interface Builder file. 2014-06-22 21:41:59.099 MyApp Test[75211:17812266] -[UIView setDelegate:]: unrecognized selector sent to instance 0xcf5d650 2014-06-22 21:41:59.101 MyApp Test[75211:17812266] *** Terminating app due to uncaught exception 'NSInvalidArgumentException',reason: '-[UIView setDelegate:]: unrecognized selector sent to instance 0xcf5d650'
编辑
这是我的故事板的截图:
解决方法
您的模块为“无”,您应该将其选择为相应的值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。