一、前言

该博客里面的方法均是看着苹果官方的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];

这两种形式等价。

最新文章

  1. Django 之 models的 F() 和 Q() 函数
  2. eclipse中jsp文档无语法着色,安装Eclipse Java Web Developer Tools插件
  3. webkit浏览器css设置滚动条
  4. 三、jQuery--jQuery基础--jQuery基础课程--第7章 jQuery 动画特效
  5. 通过Ruby On Rails 框架来更好的理解MVC框架
  6. Linux常用命令_(文件权限)
  7. oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT_数据库的几种锁
  8. Google Map API v2 番外篇 关于gps位置偏差及修正方法探讨
  9. BlueJ的code pad
  10. oracle一直不确定的distinct多字段处理情况整理
  11. sqoop的导入导出
  12. python读写excel文件
  13. Windows平台安装TensorFlow Q&A
  14. 【BZOJ1103】大都市 解题报告
  15. 细说shiro之五:在spring框架中集成shiro
  16. php值callback类型和匿名函数(闭包)
  17. python opencv 按一定间隔截取视频帧
  18. VS中 Winform查看窗体内控件之间的相互关系
  19. 轻松转移github项目步骤
  20. C# 解决串口接收数据不完整

热门文章

  1. 从零开始学 Web 之 jQuery(六)为元素绑定多个相同事件,解绑事件
  2. google 身份验证器
  3. 经济学人使用Golang构建微服务历程回顾
  4. mybatis mapper xml文件的导入方式和查询方式
  5. C# DataGrid 用法---极速入门测试
  6. C# 类相同属性赋值
  7. java Future用法和意义一句话击破
  8. IDEA从SVN中导入多模块项目
  9. 二进制值和十六进制字符串相互转换的C++代码
  10. 牛客网剑指offer 二维数组的查找