gpt4 book ai didi

ios - Objective-C 应用程序中缺少 Swift 框架中的 IBOutlet 属性

转载 作者:搜寻专家 更新时间:2023-10-31 08:03:35 24 4
gpt4 key购买 nike

我有一个用 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
...
}

我在 Storyboard 中将我的 View 类设置为 MyFrameworkClass,但是 delegate 导出没有显示。

我尝试使用和不使用 @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'

编辑

这是我的 Storyboard的截图:

enter image description here

最佳答案

你的模块是None,你应该选择它到你相应的值。

关于ios - Objective-C 应用程序中缺少 Swift 框架中的 IBOutlet 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24357416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com