【发布时间】:2011-03-22 03:23:59
【问题描述】:
我对 iPhone 开发还很陌生。
我正在构建一个具有多个视图和控制器的应用程序。只有一个模型。
我需要在所有控制器之间共享模型;所以我已经在 App Delegate 头文件中实例化了模型:
@interface MyAppDelegate
(...snip...)
@property (nonatomic, retain) CalcModel *model;
然后据此合成。
在控制器内部,我尝试像这样引用模型:
CalcModel* model = [[[UIApplication sharedApplication] delegate] model];
问题是编译器说'-model' not found in protocol
这可能是因为委托字段返回协议类型,而不是具体的 MyAppDelegate 类型...所以我应该将 [[UIApplication sharedApplication] delegate] 转换为 MyAppDelegate,以便我可以访问模型属性吗?如果有,怎么做?
或者这一切都错了?更广泛地说,您将如何在视图控制器之间共享模型?
非常感谢您的帮助
【问题讨论】:
-
我不建议将任何与数据相关的东西放入您的 AppDelegate 类中。而是创建一个包含您的 Datamodel 的 Singleton 类,然后您可以从所有视图控制器轻松访问它。
标签: iphone objective-c model-view-controller