【问题标题】:Swift making IBOutlet as strongSwift 让 IBOutlet 变得强大
【发布时间】:2014-08-14 05:06:09
【问题描述】:

IBOutlets 在 Swift 中默认是弱的。我在 viewController 中有一个对象在情节提要中创建,它不在视图层次结构中,所以我需要它成为 ViewController 中的强引用,我该如何更改 @IBoutlet 属性变强。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    更改插座的名称,它可能是保留名称,因此您试图覆盖它。

    【讨论】:

    • 在我的情况下更正它是一个保留名称,所以它给出了一个错误。感谢您的回答。
    • 在我的例子中是“描述”
    【解决方案2】:

    该错误的另一个原因是因为一个愚蠢的错误。例如,当我在视图控制器中初始化一个名为“imageView”的 UIImageView 对象时,发生了一个名为“无法用弱属性覆盖强属性”的错误。 但是当我更改对象名称例如“pictureView”时,错误就消失了。 最好的问候...

    【讨论】:

      【解决方案3】:

      它现在是从下拉菜单创建插座时的一个选项。

      这就是为什么我们可能希望从 WWDC 2015 Session 407 开始让它们变得强大

      http://asciiwwdc.com/2015/sessions/407

      我要指出的最后一个选项是存储类型,它可以 要么强要么弱。

      一般来说,你应该让你的出口强大,尤其是如果你是 将出口连接到子视图或非约束 总是会被视图层次结构保留。

      你真正需要让出口变弱的唯一情况是,如果你有一个 引用某些内容的自定义视图备份视图层次结构和 一般不建议这样做。

      所以我要选择 strong 并且我会点击 connect 这将 生成我的出口。

      【讨论】:

      • 请注意,如果要切换约束的“isActive”,这是必需的,否则设置 isActive = false 将从视图中删除约束,将其释放以进行垃圾回收。
      【解决方案4】:

      您可以在连接插座时通过选择strong 来创建IBOutlet strong

      或者只是从声明中删除 weak 关键字:

      @IBOutlet var label: UILabel!
      

      【讨论】:

        【解决方案5】:

        strong 关键字再次消失,并在 Xcode 6.1.1 中引发语法错误。默认情况下,现在的网点似乎很强大,而以前恰恰相反。因此,只需定义出口,无需额外声明。

        @IBOutlet var nameOfOutlet: type = Whatever();
        

        【讨论】:

          【解决方案6】:

          从 Xcode 6 beta 3 开始,Swift 现在允许将 @IBOutlets 标记为 strong

          来自release notes

          • @IBOutlets 可以显式标记为强以覆盖它们的 隐含的弱行为。 (16954464)

          【讨论】:

            【解决方案7】:

            从 Xcode 6 beta 2 开始,Swift 没有办法指定强大的出口。解决方法是在 IB 中连接插座,然后从源文件中删除 @IBOutlet 属性。

            更新:这已添加到 Xcode 6 beta 3 中。

            【讨论】:

            • 有什么办法可以骗到这个吗?因为我已经下载了最新的测试版(6.3 beta 3),但是当我尝试将 IBOutlet 属性声明为强大时仍然出现错误。 '@IBOutlet strong var containerView:UIView?'
            猜你喜欢
            • 2014-11-27
            • 1970-01-01
            • 1970-01-01
            • 2015-06-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-31
            相关资源
            最近更新 更多