Cocoa Bindings:简化视图与模型交互的利器
1. 传统方法的问题与Cocoa Bindings的引入
在传统的开发中,将控制器对象连接到各种视图对象以显示和获取值时,通常会为每个视图编写一个小的操作方法,还会有一个大的更新方法来一次性更新所有视图内容。这种方法在简单项目中可行,但存在扩展性问题。例如,当有大量视图时,控制器会有大量小操作方法和一个巨大的更新方法。而且,控制器与视图之间存在紧密耦合,若更改视图类型,需要修改大量相关代码。
Cocoa Bindings是苹果自Mac OS X 10.3引入的技术,它能解决上述问题。通过Cocoa Bindings,可使用Interface Builder配置视图,使其自动从模型对象获取值并将更改传递回模型对象。只需指定要处理的控制器对象和用于获取和设置值的键,就可以通过自定义控制器类或苹果提供的通用控制器类访问模型对象。采用这种技术后,控制器类通常无需了解具体的视图对象,可减少大量代码。
2. 使用Cocoa Bindings处理简单控件
以一个角色扮演游戏中游戏管理员使用的应用为例,该应用可随机创建角色、怪物和地下城。主窗口包含创建随机游戏对象的按钮和显示结果的文本字段,还有一个偏好设置窗口,用户可在其中指定游戏对象创建的参数。
2.1 创建DungeonThing项目
- 启动Xcode,选择“File - New Project”,选择“Cocoa Application”,指定项目创建目录并命名为“DungeonThing”。
- 创建DungeonThingAppDelegate类(若使用Snow Leopard,该