0

这可能是一个非常新的问题,但我正在使用的书(学习 iOS 编程)并没有很好地解释它,所以我在这里问。

当我将 UITextFieldn 拖到我的视图上时,我知道我可以 ctrl click 从它进入我的头文件,以便声明一个文本字段的实例(例如 textField1),然后再合成(.m 文件)。

我也可以手动输入 .h,然后将 UITextField 连接为称为 textField1 的 UITextField 的引用出口。

这是有道理的,因为我想以编程方式更改文本、字体等,因此需要建立连接。

这是我们在头文件中声明对象的唯一原因吗?

我问是因为我一直在观看有关如何使用手势识别器的视频,但似乎没有人在 .h 中声明这些。是因为他们只是通过界面构建​​器来最小化这些吗?

我只想了解有关此规则的一些信息。

编辑:我想我的问题不是我是否必须在.h文件中贴花它(而不是.m)但是如果我永远不会在界面之外使用它,为什么我必须声明一个手势识别器建设者?

谢谢

4

2 回答 2

2

我可以推荐阅读这篇关于“Objective-C 中的私有属性、方法和 ivars”的简短但有效的文章,以了解在 Objective-C 中封装的“原因和方式”。

此外,如果您查看Xcode User Guide,它指出您不一定需要在头文件中声明插座,也可以在实现 (.m) 文件中声明它。这样做的好处是不暴露你的插座,我想这与这些教程中的手势识别器在实现文件中声明的目的相同。

于 2013-06-30T15:04:57.793 回答
0

在 .h 和 .m 中声明插座的唯一区别是使用视图控制器的其他类的可见性。

您想问自己的问题是,该特定视图控制器之外的人是否应该知道您的视图的存在。我建议您在 .m 文件中定义所有实例变量,并仅在需要时将它们移动到 .h 文件(并且在移动它们之前,请再考虑一下这是否是一个好的设计决策 - 在常见情况下,视图控制器应该处理所有其观点本身)。

于 2013-06-30T14:41:04.550 回答