为了我自己的用途,我创建了一些MVC构造。我有一个DataManager(一个单例),它在数组或字典中包含所有必需的数据(主要表示在模型中;普通的NSObject)。
视图(Nib文件和ViewControllers)与DataManager通信以通过get函数获取其数据。如果数据已存在于DataManager中,它将返回数据(通过通知)。如果不;它将呼叫转发给控制器,然后获取它。
在该控制器中,我以离线/在线方式分隔呼叫(对您可能不重要),如果在线,呼叫是XML请求,并且如果离线呼叫到SQLite数据库。
然后控制器可以在DataManager上设置数据,并向通知发送通知。
然后循环再次开始,View可以通过DataManager访问数据..所有这些都发生在异步调用中,因此通知(如果我让DataManager或者Controller与视图混淆,它不会是线程安全的)。
我的AppDelegate只执行主视图,控制器和DataManager的第一次初始化,然后接管它们。
将模型(数据)放在中心位置很好,所以您可以在每个类中轻松访问它,而不会创建太多的类依赖关系。
我分手了大多数类型的功能为单独的类也一样,对DataManager的数据,异步URL请求下载管理器,XML解析器,工厂从NSDictionaries,一个DatabaseConnector等建立模型等
不错的设计。肯定会在我的应用中使用它:) – lostInTransit 2009-05-19 14:26:43