NSObject

简介:

一、前言

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

 

    这两种形式等价。

相关文章
一个重要的类 CALayer
一个重要的类CALayer —— 基本概览(一)一个重要的类CALayer —— 其与UIView的区别(二)一个重要的类CALayer ——主要属性及其在显示图片中的简单应用(三)
773 0
|
iOS开发
NSObject类了解
今天看一本书,偶然间看到关于继承的那一章。上面有一句话是这么说的:在OC中,允许定义自己的根类,但通常不这么做,而是希望利用现有的类。因此,我们所定义的类都是属于NSObject根类的派生类。
974 0
|
iOS开发 MacOS 开发者