一、前言

该博客里面的方法均是看着苹果官方的API来解释的,一般都是常用的方法如有问题,请指出。

二、简介:

该类集成的是其本身,大家可以从任何一个类去向上追溯,都会发现最终的父类都是NSObject。

三、常用地方

四、常用方法

1、- (BOOL)isEqual:(id)anobject;

该方法判断两个NSObject(或者其子类)是否相等。返回bool值,如果相等返回YES,不相等返回NO.如果两个NSObject相等,那么他们一定又相同的hash值。

如果anobect为nil,那么将会返回NO.

该方法再ios2和以后存在。

如果想把两个类放到一个集合中,一定要确保为他们两个(或多个)定义了hash值。

2、+ (Class)class;  / - (Class)class;

该方法返回该Object的class名称,经常用到的场景是:

BOOL test = [self isKindOfClass:[SomeClass class]];

经常用于判断是否是某个类。

3、- (id)performSelector:(SEL)aSelector;

作用:该方法发送一个特定的消息给接收者,然后返回该消息返回的结果。它等效于直接发送一个aSelector消息给接收者。例如下面的例子,他们是等效的。然而,该方法允许发送一个没有定义的方法直到运行的时候。方法可以当做变量传递。

参数:aSelector:是一个selector标示,如果为空,将会抛出异常NSInvalidArgumentException.

例子:

 

 MyObject *mo = [MyObject new];

        [mo sendMessage];

        [mo performSelector:@selector(sendMessage)];

4、- (id)performSelector:(SEL)aSelector withObject:(id)object;

5、- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;

上面4、5两个方法和3差不多只不过里面可以传入一个参数,两个参数,这里就不多解释了。

6、- (BOOL)isProxy;

作用:该方法的作用是返回一个bool值,即是否是NSObject的后裔。不常用。

7、+ (Class)superclass;

该方法用户得到某个类的父类,IOS8以后才有这个方法。

例如我有一个类继承自NSObject,那么[myClass superclass];它的返回值就是NSObject.

8、+ (BOOL)isSubclassOfClass:(Class)aClass;

该方法用于指定接收者是否是一个类或者相同的类,或者指定的类。

例如:

 if ([MyObject isSubclassOfClass:[NSObject class]]) {

        NSLog(@"MyObject 是NSObject类");

    }else

    {

        NSLog(@"MyObject 不是NSObject类");

    }

我的MyObject是一个继承自NSObject的类,那么该判断返回的结果就是“MyObject 是NSObject类”。

9、+ (NSString *)description;

该方法返回一个代表接收类内容的内容,在不同的类中返回内容可能不同。例如当我们实例化一个UILabel *lab = [UILabel new];时,[lab description]返回的就是该lab的textLabel.text.

10、- (BOOL)isKindOfClass:(Class)aClass;

该方法用于判断某个类对象是否是某个类。

例如:

   if([myArr isKindeOfClass:[NSMutableArray class]])

    {

        NSLog(@“是");

    }else

    {

        NSLog(@“不是");

    }

常用于得到网络请求数据后进行判断一下,如果是符合自己要求的类,则进行数据处理,否则进行其他处理。

11、+ (instancetype)new;

该方法的功能是实例化一个对象。 它是alloc和init的组合形式.

例如:

   MyObject *mo = [MyObject new];
MyObject *mo = [[MyObject alloc] init];

这两种形式等价。

NSObject的更多相关文章

  1. YYModel 源码解读(二)之NSObject+YYModel.h (5)

    好了,之前的博文中详细的解释了一些辅助的类和辅助的函数,接下来就是使用它们来实现酷炫功能的时候,正所谓磨刀不误砍柴工啊 我们先把总的功能罗列出来 1. json转字典              + ( ...

  2. YYModel 源码解读(二)之NSObject+YYModel.h (4)

    接下来我们继续向下看 typedef struct { void *modelMeta; ///< _YYModelMeta void *model; ///< id (self) voi ...

  3. YYModel 源码解读(二)之NSObject+YYModel.h (3)

    本篇主要介绍的是 在真正转之前的几个辅助函数 /** Get number from property. @discussion Caller should hold strong reference ...

  4. YYModel 源码解读(二)之NSObject+YYModel.h (2)

    _YYModelMeta   这个内部的类主要是对这个类的描述.包含了和此类转换相关的数据. /// A class info in object model. @interface _YYModel ...

  5. YYModel 源码解读(二)之NSObject+YYModel.h (1)

    本篇文章主要介绍 _YYModelPropertyMeta 前边的内容 首先先解释一下前边的辅助函数和枚举变量,在写一个功能的时候,这些辅助的东西可能不是一开始就能想出来的,应该是在后续的编码过程中 ...

  6. iOS Class 使用NSProxy和NSObject设计代理类的差异

    经常发现在一些需要使用消息转发而创建代理类时, 不同的程序员都有着不同的使用方法, 有些采用继承于NSObject, 而有一些采用继承自NSProxy. 二者都是Foundation框架中的基类, 并 ...

  7. iOS 杂笔-24(常用类到NSObject的继承列表)

    iOS 杂笔-24(常用类到NSObject的继承列表) NSString NSObject->NSString NSArray NSObject->NSArray ↑OC基本类都直接继承 ...

  8. @interface NSFileManager : NSObject

    @interface NSFileManager : NSObject NSFileManager操作: 1.文件夹创建删除 2.文件创建删除 3.清除数据缓存 以上办法都在这里:https://de ...

  9. iOS NSObject 的 isa 属性的类型 Class

    以前对NSObject的isa属性也知道点,但是了解不深,今天看了这篇博文,感觉很好,总结一下: http://chun.tips/blog/2014/11/05/bao-gen-wen-di-obj ...

  10. 【原】iOS多线程之NSThread、NSOperationQueue、NSObject和GCD的区别

    区别: Thread: 是这几种方式里面相对轻量级的,但也是使用起来最负责的,你需要自己管理thread的生命周期,线程之间的同步.线程共享同一应用程序的部分内存空间, 它们拥有对数据相同的访问权限. ...

随机推荐

  1. 从零开始学 Web 之 CSS(二)文本、标签、特性

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  2. 用node.js写一个jenkins发版脚本

    背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = ...

  3. SQL 必知必会·笔记<13>插入数据

    INSERT 用来将行插入(或添加)到数据库表.插入有几种方式: 插入完整的行: 插入行的一部分: 插入某些查询的结果. 1.1 插入完整的行 存储到表中每一列的数据在VALUES 子句中给出,必须给 ...

  4. php中 ord() 和 chr() 处理 utf8 字符串

    ord()  : 将字符转为 ascii 码 (0-256),准确定义官方文档:http://php.net/manual/en/function.ord.php chr() : 将 ascii 码转 ...

  5. 剖析PHP底层数组是如何实现的

    PHP是一门入门容易,使用范围广泛的语言,以其灵活性以及web后端开发被很多人熟知,也被很多人戏称“PHP是世界上最好的语言”.本人是一名“忠实”的PHPer,相信用过PHP的程序员都会体会到PHP数 ...

  6. AD预测论文研读系列1

    A Deep Learning Model to Predict a Diagnosis of Alzheimer Disease by Using 18F-FDG PET of the Brain ...

  7. PHP报错类型

    p: 语法错误 定界符; F: 致命错误 函数;方法重名;包含(require) W: 警告 包含(include); N: 通知 变量未声明,函数

  8. 复制神器Ditto使用方法详细说明

    1.普通的粘贴快捷键设置: 我设置成ctrl+1 --> ctrl+10.但是注意,有些程序里ctrl有特殊功能,这样ctrl+[0-9]键会出现问题,所以建议将粘贴快捷键设置的复杂一点,例如c ...

  9. MAC ACL、RACL和VACL

    拓扑结构: 配置IP地址.VLAN及路由: SW1(config)#int range f0/1 - 2SW1(config-if-range)#switchport mode accessSW1(c ...

  10. C# 匿名类型序列化、反序列化

    前言 现在提倡前后端分离,分离后服务全部采用接口的方式给前端提供服务,当我们处理自定义查询时必定会多表查询,而处理多表查询时我们又懒的去建view model,建的过多项目也凌乱的很,所以在dao层处 ...