如何使用Objective-C在iOS中实现模型?

时间:2012-09-28 05:12:46

标签: objective-c ios cocoa-touch model-view-controller model

  编辑:虽然答案是教我的东西,但我仍然没有   想法我如何“实施”一个模型。任何人都可以给我一个例子   我将如何创建一个具有一些基本的简单模型类   调用NSUserDefaults或JSON Web调用的函数以及如何调用   我可以从任何一个视图控制器访问它吗?

我刚刚开始进行iOS开发,并且我的应用程序需要一个Model来与控制器之间的整体数据流进行交互,但我不确定它们应该如何正确实现。

我知道View是在故事板中,而Controllers是与这些视图相关联的类。

为应用程序实施中央模型的正确方法是什么?我是否创建了一个类(即“MyModel.h / .m”),然后从我的所有视图控制器中导入它?

我也看到人们使用UINavigationController-> RootViewController作为他们的模型,这是否可行?

我已经搜索了这个问题并搜索了堆栈溢出几个小时,但我现在正在寻求一个新问题。

  编辑:虽然答案是教我的东西,但我仍然没有   想法我如何“实施”一个模型。任何人都可以给我一个例子   我将如何创建一个具有一些基本的简单模型类   调用NSUserDefaults或JSON Web调用的函数以及如何调用   我可以从任何一个视图控制器访问它吗?

1 个答案:

答案 0 :(得分:7)

在iOS中,a model (MyModel class) is usually a subclass of NSObject or in the case of Core Data (an iOS framework that helps save data to a database locally on the device) NSManagedObject.与任何模型对象一样,它包含实例变量和 getter / setter方法。大多数面向对象的语言都有提供封装的机制,在iOS中属性提供封装,关键字 synthesize 自动生成getter和setter方法。

View is subclass from *UIView* which provides the capability for handling touch events and drawing.   UIKit框架包含用于绘制典型界面元素的类,如表格(列表),按钮,文本字段,滑块等。

Controller is generally a subclass of **UIViewController** that manages a view,它还负责响应委托消息和目标操作消息。您可以拥有一个UITableViewController,它是 UIViewController 的子类,用于管理 UITableView

TabBar and Navigation View Controllers管理一组视图控制器,但Navigation VC将VC管理为“stack”数据结构和yes it is a viable usage

请查看ios apple库资源中的Design Patterns 以获取进一步参考,here是一个苹果示例代码,用于了解如何使用模型 - 视图 - 控制器设计模式创建网络应用程序< / p>

this教程教您如何开始使用 JSON ,尝试在您的应用中集成FB,以便将JSON理解为有趣且轻松

在您的应用中开始编码 NSUserDefault ,例如

// create a standardUserDefaults variable
NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];

// saving an NSString
[standardUserDefaults setObject:@"mystring" forKey:@"string"];

here是我开始的一个很好的教程..

快乐的编码:)