• NSObject


    1.OC动态绑定和动态类型,我们需要使用到NSObject的以下方法:

     1 /**
     2  检测对象是不是 aClass 或其子类的成员
     3  */
     4 - (BOOL)isKindOfClass:(Class)aClass;
     5 
     6 /** 
     7  检测对象是不是 aClass 的成员
     8  */
     9 - (BOOL)isMemberOfClass:(Class)aClass;
    10 
    11 /** 
    12  检测对象是不是能够响应 aSelector 指定的方法
    13  */
    14 - (BOOL)respondsToSelector:(SEL)aSelector;
    15 
    16 /** 
    17  对象调用 aSelector 指定的方法
    18  */
    19 - (id)performSelector:(SEL)aSelector;
    20 
    21 /**
    22  对象调用 aSelector 指定的方法,传递参数 object
    23  */
    24 - (id)performSelector:(SEL)aSelector withObject:(id)object;
    25 
    26 /** 
    27  对象调用 aSelector 指定的方法,传递参数 object1、object2
    28  */
    29 - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;

    2.OC中的异常处理,也许你会用到如下代码块

    1     @try {
    2         // Code that can potentially throw an exception
    3     } @catch (NSException *exception) {
    4         // Handle an exception thrown in the @try block
    5     } @finally {
    6         // Code that gets executed whether or not an exception is thrown
    7     }

    下面来说明以上代码如何使用:

       // 继承自 NSObject,有个方法 - (void)test;
        Man *man = [[Man alloc] init];
        
        @try {
            [man test];
        } @catch (NSException *exception) {
            [exception name];
            NSLog(@"Catch exception: %@ %@", [exception name], [exception reason]); // 异常可以抛给服务器
        } @finally {
            // code………
        }
    1 - (void)test {
    2     NSLog(@"test --- ");
    3     NSAssert(![self respondsToSelector:@selector(test)], @"Can't execute the method.");
    4 }

    我们在 Man 的方法中加了一个崩溃代码(测试使用)。

    添加上异常处理代码之后,即使我们调用 - (void)test; 方法,程序也不会因此而崩溃。而回打印出异常的原因:

    1 2016-04-02 16:36:56.113 OC测试[21899:1428201] test --- 
    2 2016-04-02 16:36:56.114 OC测试[21899:1428201] *** Assertion failure in -[Man test], /Users/liuxianzhi/Desktop/OC测试/OC测试/Man.m:15
    3 2016-04-02 16:36:56.119 OC测试[21899:1428201] Catch exception: NSInternalInconsistencyException Can't execute the method.

    因此,使用了异常处理之后,程序会变得更为健壮。

    尊重作者劳动成果,转载请注明: 【kingdev】

  • 相关阅读:
    CentOS7- 配置阿里镜像源
    MySQL学习笔记
    OSI&TCP/IP模型
    加密算法学习
    golang学习笔记
    Redis学习总结整理
    TCP
    HTTP/HTTPS
    HTTP2
    MVCC
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5347770.html
Copyright © 2020-2023  润新知