我是新手iPhone开发者,正在学习教程和一些示例。
我想知道NSObject类和UIViewController类之间的区别,以及我们如何知道应该使用哪个类。
有些写在NSObject中,有些写在UIViewController中。
我是新手iPhone开发者,正在学习教程和一些示例。
我想知道NSObject类和UIViewController类之间的区别,以及我们如何知道应该使用哪个类。
有些写在NSObject中,有些写在UIViewController中。
维基百科提供了面向对象编程的基本概述:
面向对象编程(OOP)是一种编程范式,使用“对象”——数据结构和方法以及它们之间的交互来设计应用程序和计算机程序。[...] 面向对象程序通常包含不同类型的对象,每种类型对应于要管理的特定复杂数据或实际世界对象或概念,例如银行账户、曲棍球运动员或推土机。
在Objective-C中,所有对象都基于NSObject
。现在先接受这个事实。如果您想使用一个对象,它将基于NSObject
。因此,除非您使用int
或float
,否则您可能正在使用基于NSObject
的东西。
NSObject
本身并没有提供任何功能。它是您创建对象的“起点”或“空白状态”。
您可以构建一个对象定义,用于表示动物,如下所示:
@interface Animal : NSObject { }
@property (assign) int age;
- (Animal*)mateWith:(Animal*)lover;
@end
@interface Human : Animal { }
- (void)lie;
@end
UIViewController
是UIResponder
的子类,而UIResponder
本身是NSObject
的子类,而NSObject
是一个根类(即不是任何子类)。
这意味着可以在UIViewController
上调用NSObject
的任何方法,但反之则不行。如果查看UIViewController Class Reference,它列出了您可以使用此类的所有属性和方法。此外,您还会自动获得NSObject
的所有方法(列在NSObject Class Reference中)。
我为每个视图维护使用UIViewController
。我几乎从不直接使用对象作为NSObject
,尽管我经常子类化NSObject
,但我从不子类化UIViewController
。但这只是我的做法。
我建议您查看苹果的View Controller Programming Guide,以了解使用UIViewController
的好处。
UIViewController
的方法,例如view
属性,则使用它。如果你只想使用NSObject
固有的方法,则使用它。我几乎从不直接使用NSObject
,但我经常对其进行子类化。 - PengOneNSObject表示它仅继承ObjectProperties。它没有视图。但是,UIViewcontroller自身具有视图。它可以控制视图。
当您不需要视图时,可以使用NSObject。如果需要视图控制器或视图,则可以使用UIViewController。
NSObject是Objective-C中的超类,而UIViewcontroller是NSObject的子类。UIViewcontroller继承自UIResponder,并从NSObject类继承属性...
UIViewController
实际上是NSObject
的一个子类。 - jscs