[英]Objective C & Swift Interoperability causes error “Extensions may not contain stored properties”
我正在研究我在Objective C上完成的一個應用程序。我需要為它添加一個新模塊,我決定將Swift用於該特定模塊。
我在Objective C中有一個名為HomePage
的類,我想在其中添加一些新的IBAction
和IBOutlet
。 為此我添加了一個新的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類別中使用它們,所以這里的語言不是問題。
在這兩種語言中,您需要使用關聯的引用來實現存儲的屬性。 有關在Swift中使用關聯引用的示例,請參閱此主題 。 由於它是一個C API,它在Objective-C中的用法幾乎相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.