【问题标题】:What is the difference between a Model (MVC) in web development compared to iOS development与iOS开发相比,Web开发中的模型(MVC)有什么区别
【发布时间】:2012-09-28 15:53:40
【问题描述】:
我来自 Web 开发背景。我无法理解如何在 iOS 开发中使用模型。
Web 开发中的模型是一个单独的文件,Controller 文件可以通过 getMysqlQueryOf(stuff); 等函数访问该文件
iOS 开发使用相同的东西吗?我是否应该创建一个 MyModel.h 和 MyModel.m 文件并在我的所有视图控制器中包含/导入它并像这样访问模型类中的方法?
您能否展示一个模型类的简单示例以及如何从视图控制器访问它?
【问题讨论】:
标签:
ios
model-view-controller
design-patterns
model
【解决方案1】:
在我的 iOS 体验中,UIViewController 倾向于充当自己的孤岛。错误的方法是将要放入模型的所有内容都放入委托类中。我认为您对“模型”的想法是正确的。我会创建一个 someModel.m 和一个头文件,并给每个需要模型的类一个指向它的指针,并在委托中初始化核心模型。
IMO,iOS 数据流还有待改进。
【解决方案2】:
如果我想在各种对象之间共享一个数据模型,我会创建它以便我可以静态访问它。
例如,下面的代码创建了一个对象 dataHandle,通过包含头文件并调用 [MyData getMyData],项目中的任何其他对象都可以轻松访问该对象。
MyData.h
@interface MyData : NSObject {
NSString *dataName; // example data in my object
}
@property (nonatomic, retain) NSString *dataName;
+ (MyData *)getMyData;
我的数据.m
@implementation MyData
@synthesize dataName;
static MyData *dataHandle;
+ (void)initData
{
dataHandle = [MyData new];
[dataHandle setDataName:@"DefaultName"];
}
+ (MyData *)getMyData
{
if (!dataHandle){
[MyData initData];
}
return dataHandle;
}