我正在学习 iOS 开发的东西,我在教程和书籍中发现控制器层通常可以直接访问视图的控件(文本字段、标签等)。让我们考虑这样一个例子:
假设该视图有一个名为的标签lblResult
和一个名为 的文本字段txtDataToAnalyze
。比在控制器界面中我们有这样的东西:
@property (nonatomic, retain) IBOutlet UILabel* lblResult;
@property (nonatomic, retain) IBOutlet UITextField* txtDataToAnalyze;
以及实现文件中的一些@synthesize
语句。
我在 JavaSwing 开发方面有一些经验,大多数人认为我是在没有任何 GUI 构建器的情况下手动编写的,而我通常在 MVC 中做的是通过 getter/setter 访问 View 的控件。例如:void setResult(String resString);
或String getDataToAnalyze();
。这样,控制器只知道视图中显示了哪些信息,而不知道它们是如何显示的。我认为它更灵活(以后更改视图层更容易)。
我知道 iOS 有一些特定的规则,引入了 XIB/NIB 文件等,所以也许我的怀疑在 iPhone/iPad 开发的情况下完全没用。但我将为 iOS 编写一些更严肃的应用程序(实际上是从 Java Swing 中“重写”它),这就是我想问你的原因:
你认为,我应该改变我的思维方式并习惯这种新的(对我来说)方法(xib 文件,使用拖放创建 GUI 并为控制器提供有关如何在视图中显示数据的信息)?你在入手 iOS 时有过类似的疑惑吗?