【发布时间】:2015-06-30 11:07:38
【问题描述】:
我正在开发我以前在 Objective C 上完成的应用程序之一。我需要向它添加一个新模块,我决定为该特定模块使用 Swift。
我在 Objective C 中有一个名为 HomePage 的类,我想在其中添加一些新的 IBActions 和 IBOutlets。为此,我添加了一个新的 swift 文件并扩展了现有的类,例如:
// MARK: IBOutlets and IBActions
extension HomePage
{
@IBOutlet var image : UIImageView!
...
/*!
* Loads the application support webpage
*/
@IBAction func loadSupportURL(sender : UIButton)
{
}
...
}
如果我只添加 IBActions,一切都会正常运行。但是当我添加 IBOutlet 时,编译器会抛出如下错误:
扩展可能不包含存储的属性
为了修复它,我有两种方法,
- 在我的 Objective C 类本身中声明出口
- 将整个 Objective C 类转换为 Swift 并在其中声明属性
还有其他方法可以解决这个问题吗?
【问题讨论】:
-
@IBOutlet var image : UIImageView!是这样吗?
-
@IBOutlet var image : UIImageView()
-
是的,正如编译器所说,你不能在扩展中存储属性,所以你必须使用你的解决方案之一
标签: ios objective-c swift iboutlet language-interoperability