iphone – NSObject和UIViewController有什么区别
我是
iphone开发的新手,我正在阅读教程和一些示例.
我想知道NSObject和UIViewController类之间有什么区别,以及我们将如何知道应该使用哪个类. 一些是用NSObject编写的,一些是在UIViewController中. 解决方法
来自维基百科,面向对象编程的基本概述:
在Objective-C中,所有对象都基于NSObject.现在就把它当作面值.如果你想使用一个Object,它将基于NSObject.所以,除非你使用int或float,否则你可能会使用基于NSObject的东西. NSObject in-and-of-self,并不真正提供任何功能.这是对象的“起始位置”或“空白平板”. 您可以构建一个用于表示Animal的Object定义,如下所示: @interface Animal : NSObject { } @property (assign) int age; - (Animal*)mateWith:(Animal*)lover; @end 在这个例子中,我们描述了一个基本的动物.这堂课基本上做了两件事;知道动物的年龄,并且可以与另一种动物交配以产生动物后代. 您将在该示例中注意到我们在NSObject上基于Object定义. 现在,假设我们要为人类创建一个定义;好吧,人类是,并且将永远是所有动物的子集.因此,我们可以重用Animal类定义中的所有逻辑来创建一个Human定义 – 我们可能这样做: @interface Human : Animal { } - (void)lie; @end 在这个例子中,我们为一种名为“Human”的Object创建了一个新定义.我们只定义了一件事:一种让我们班级能够撒谎的方法 – 除了我们还能够交配,因为我们基于“动物”,而“动物”已经描述了如何交配. 回答你的问题: UIViewController包含一个逻辑BUNCH,用于执行一些非常复杂的任务.大部分逻辑都是Cocoa Touch框架的一部分. 如果你正在制作一个“动物”课程,你不需要知道如何从屏幕上回复用户输入,你不需要知道如何管理UIView,你不需要跟踪parentViewControllers等等.因此,将我们的Animal类放在UIViewController上会很愚蠢.这是不使用UIViewController的时候. 现在,如果你在iPhone上创建一个用户界面屏幕,并且你想在用户点击一个按钮时执行一些例程 – 那么你需要所有UIViewController的东西,所以你要将它子类化. 我可以理解为什么,如果你不是来自面向对象的编程背景,你可能会对此感到困惑.看起来您需要创建的大部分内容都是ARE UIViewController子类.然而,当你探索OOP的世界时,你会发现不仅是对象是别人写的你可以使用的东西 – 但它们是你想要从头开始创建的东西,以完成你曾经在程序上做的事情. . 祝你在激动人心的旅途中好运. 我强烈建议你去当地的Barnes and Noble旅行,或者去亚马逊网站找一些关于这个主题的书籍 – 如果你有一个已经知道OOP的朋友,一个好的导师比学习自己快得多. 不要忘记,在iPhone上,你还必须处理内存管理.对于很多人来说这是一个难点 – 如果你不遵守规则,会引起很多麻烦.尽早了解它们,您将得到很好的服务. 希望有所帮助, 资料来源: > http://en.wikipedia.org/wiki/Object-oriented_programming (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |