【问题标题】:Curiosities noticed while learning Objective-C and Xcode in general一般在学习 Objective-C 和 Xcode 时发现的好奇心
【发布时间】:2011-08-24 04:18:12
【问题描述】:

在指定提供视图控制器和视图之间连接的实例变量时,我们在视图对象类型之前使用 IBOutlet 关键字。这有助于表明它是一个连接到视图的实例变量。

但是,是否存在不需要 IBOutlet 关键字位于视图对象类型之前的情况?例如:我们可以有一个场景:

UIButton *display ;

对vs有某种用途

IBOutlet UIButton *display ;

这个问题是出于好奇。

我的另一个问题可能与理解接口和 C 的细微差别有关。

在视图控制器或任何这样的控制器中,我们倾向于“导入”头文件而不是实现文件。我不同意这个概念,这只是一种好奇心?

【问题讨论】:

    标签: objective-c c xcode interface-builder


    【解决方案1】:

    IBOutlet”关键字不会改变您程序的任何内容,它只是允许 Interface Builder 识别可用的连接。如果您不需要在界面中连接某些东西(例如,如果您只想要一个用于私有存储的实例变量,或者如果您想使用@property),那么您不必使用IBOutlet .

    我们导入头文件只是为了让编译器知道在程序的其他地方使用它们时可以使用哪些类和方法。不需要导入实现文件;它只需要编译到程序中,它所包含的东西就可以使用。

    【讨论】:

      【解决方案2】:

      对于编译器,IBOUTLET 是一个空运算符。这不代表任何意思。它的唯一目的是告诉 Interface Builder 你打算将它连接到一个接口对象。

      头文件定义了接口,这是所有其他类实现所需要的。

      【讨论】:

        【解决方案3】:

        IBOutlet 和 IBAction 帮助 Interface Builder 检测您希望连接到 UI 控件的出口和操作,在编译时这些 IBOutlet 和 IBAction 被忽略并且没有用处。

        我相信您在 Xcode 4.0+ 中不再需要这些关键字了。

        当您以编程方式(在代码中)构建 UI 控件时,您可能不需要 IBOutlet 或 IBAction。

        【讨论】:

        • 你仍然需要它们。如果没有它们,则无法在 IB 中进行拖动连接..
        • 是的,Callum,我们仍然这样做,而且我知道它们帮助 Interface Builder 检测出口和操作,问题是是否存在不使用 IBOutlet 关键字的场景......我不不这么认为,但我想我宁愿问
        猜你喜欢
        • 1970-01-01
        • 2010-11-25
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 1970-01-01
        相关资源
        最近更新 更多