NSObject

  NSObject是大多数Objective-C类的继承的根类;它没有父类。通过NSObject,其它类继承了一些基础的与Objective-C语言编译器系统之间的接口,并且获得了在它的实例中表现为一个对象的能力。

  尽管NSObject不是一个严格的抽象类,实际上它已经是一个类。但是通过它自己一个除了表现为一个简单类之外,NSObject实际上几乎无法完成任何有用的操作。为你的程序添加任何属性(attributes)并制定实现逻辑,你必须创建一个或者多个从NSObject继承或者父类从NSObject继承的类(class)。

  NSObject采用(adopts,或者说是继承实现)了NSObject协议(protocol)(见“Root Class—and Protocol”(第67页) ) 。NSObject协议(protocol)允许被多个根类(root class)采用,比如NSProxy另一根类(root class),并不是从NSObject继承,但却也采用了NSObject协议(protocol)所以它在Objective-C中便有了和NSObject类相似部分的类的定义(interface)和功能。

时间: 2024-08-08 01:26:36

NSObject的相关文章

NSobject的基本方法使用

除了NSobject以外,所有的类都有父类.默认的父类一般是NSobject. 我们建立一个名为person,继承NSobject的子类,来方便下面的讨论. //初始对象 person *niang=[[person alloc] init]; //1 这个方法是判断有没有这个实例方法,返回值是bool类型.有,返回1,没有,返回0.只能判断实例方法. BOOL a=[person instancesRespondToSelector:@selector(print)]; NSLog(@"%d&

【iOS开发系列】NSObject方法介绍

NSObject是OC中的基类,全部类都继承于此,这里面也给我们提供了非常多与"类"和"方法"相关的方法,本文将解说几个非常有用的方法. 正文: Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @end</span> Student.h #import "Person.h" // 继承Person类 @interface Stu

id instancetype NSObject *的区别

1.instancetype只能用于方法的返回类型,而id用处和NSObject *类似. 2.instancetype会告诉编译器当前的类型,这点和NSObject *类似,但id对于编译器却是无类型的,调用任何方法不会给出错误提示. 3.对于init方法,id和instancetype是没有区别的.因为编译器会把id优化成instancetype.当明确返回的类型就是当前Class时,使用instancetype能避免id带来的编译不出的错误情况. 4.NSObject Class和id都是

NSObject类

NSObject类是OC里面所有的类的基类: 在NSObject对象初始化一般为:NSObject * object = [[NSObject alloc] init]; + (instancetype)alloc OBJC_SWIFT_UNAVAILABLE("use object initializers instead"); - (instancetype)init 在NSObject类的头文件里面我们可以看到 alloc是类方法,init是实例方法 也就是说alloc后系统就会

iOS 基础类解析 - NSObject

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. NSObject Class Reference Inherits from none (NSObject is a root class) Co

继承自NSObject的类不能用CGRect

我用的是Xcode6.2. 系统默认没有pch文件. 所以没有自动导入UIKit包. 我在继承NSObject类里也不能用CGRect或者UI开头的控件,原因也是Xcode6.2以后版本 缺少UIKit 框架,引入框架就可以用了 在你的XXXXX.h 文件里面 导入#import <UIKit/UIKit.h>

iOS 8:【转】CoreFoundation 和 NSObject 在 ARC 下的转换

源地址:http://fann.im/blog/2013/12/25/corefoundation-bridge-nsobject/ CoreFoundation 有自己的引用计数处理方法,在 CF 下如果生成对象的方法中有 create.retain.copy 就表示 CF 会用自己的方式对引用计数加一,这就需要在结束的时候用 CFRelease() 释放.而 ARC 目前只对 NSObject 对象有自动的引用计数处理,所以在 ARC 如果有 CoreFoundation 对象和 NSObj

NSobject的复制以及其他一些类方法和实例方法的理解

copy和copyWithZone @interface Animal :NSObject <NSCopying> //在后面包含NSCOPYING协议 在M文件中复制ANimal类中的对象. - (id)copyWithZone:(NSZone *)zone //copy使用方法需要运行- (id)copyWithZone:(NSZone *)zone实例方法 { Animal * animal =[[Animal allocWithZone]init]; //allocwithzone=a

NSObject头文件解析 / 消息机制 / Runtime解读 (二)

本章接着NSObject头文件解析 / 消息机制 / Runtime解读(一)写 给类添加属性: BOOL class_addProperty(Class cls, const char *name, const objc_property_attribute_t *attributes, unsigned int attributeCount) 其中有一个参数我们再在上一篇中提到过 typedef struct { const char *name;           /**< The na