zoukankan      html  css  js  c++  java
  • 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];

        这两种形式等价。

  • 相关阅读:
    USACO 2016 February Contest, Gold解题报告
    USACO 2016 January Contest, Gold解题报告
    NOIP2013 Day2
    [DP题]放苹果
    [DP题]登山
    洛谷八连测R6
    [20171025模拟赛]
    [DP题]吃糖果
    [DP题]采药
    spring-security-oauth2 授权服务集成钉钉扫码登录
  • 原文地址:https://www.cnblogs.com/zhanggui/p/4506185.html
Copyright © 2011-2022 走看看