假设我有一个视图控制器或窗口控制器,它是(像往常一样)对应XIB文件中的“文件所有者”。实现中的IBOutlet实例变量(.m)文件
它是(众所周知)在控制器类中有IBOutlet
s很常见,然后可以使用Interface Builder在XIB中进行连接。
到现在为止,我一直在我的界面(.h)文件中创建IBOutlet
实例变量。但是(众所周知)IBOutlet
通常是控制器类的私有机制;外人甚至不应该知道他们。
这就是为什么我现在自Objective-C最近开始提供这样做的能力 - 希望将我所有的IBOutlet
都放到我的实现(.m)文件中。
我试过这样做,这似乎工作正常。 我的问题是这些:为什么这个有效?我的印象是Interface Builder只能查看类的头文件 - 而不是窥探他们的实现文件。我错了吗? Interface Builder如何“看到”实现文件?将IBOutlet
实例变量放入实现文件可能会带来潜在危险吗?
请注意,只有在Mac上使用现代运行时才可能,这意味着只有64位。传统的运行时需要在头文件中声明所有的ivars。 – 2012-01-03 22:31:44