ios – Objective C&Swift互 *** 作性导致错误“扩展可能不包含存储的属性”

ios – Objective C&Swift互 *** 作性导致错误“扩展可能不包含存储的属性”,第1张

概述我正在研究我在Objective C上完成的一个应用程序.我需要为它添加一个新模块,我决定将 Swift用于该特定模块. 我在Objective C中有一个名为HomePage的类,我想在其中添加一些新的IBActions和IBOutlets.为此我添加了一个新的swift文件并扩展了现有的类,如: // MARK: IBOutlets and IBActionsextension HomePa 我正在研究我在Objective C上完成的一个应用程序.我需要为它添加一个新模块,我决定将 Swift用于该特定模块.

我在Objective C中有一个名为HomePage的类,我想在其中添加一些新的IBActions和IBOutlets.为此我添加了一个新的swift文件并扩展了现有的类,如:

// MARK: IBOutlets and IBActionsextension HomePage{    @IBOutlet var image : UIImageVIEw!    ...    /*!    * Loads the application support webpage    */    @IBAction func loadSupportURL(sender : UIbutton)    {    }    ...}

如果我只添加IBActions,一切都很完美.但是当我添加一个IBOutlet时,编译器会抛出一个错误

Extensions may not contain stored propertIEs

为了解决这个问题,我有两种方法,

>在Objective C类中声明出口
>将整个Objective C类转换为Swift并在那里声明属性

有没有其他方法可以解决这个问题?

解决方法 正如错误消息明确指出的那样,您不能在扩展中存储属性.但问题是,你不能在Objective-C类别中使用它们,所以这里的语言不是问题.

在这两种语言中,您需要使用关联的引用来实现存储的属性.有关在Swift中使用关联引用的示例,请参阅this thread.由于它是一个C API,它在Objective-C中的用法几乎相同.

总结

以上是内存溢出为你收集整理的ios – Objective C&Swift互 *** 作性导致错误“扩展可能不包含存储的属性”全部内容,希望文章能够帮你解决ios – Objective C&Swift互 *** 作性导致错误“扩展可能不包含存储的属性”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存