zoukankan      html  css  js  c++  java
  • Objective-C description方法 SEL类型

    description方法

    #import "Person.h"
    
    @implementation Person
    - (void) setAge : (int) age {
        _age = age;
    }
    
    /** 决定了实例对象的输出结果 **/
    - (NSString *) description {
        return [NSString stringWithFormat : @"age=%i", _age];
    }
    
    /** 决定了类对象的输出结果 **/
    + (NSString *) description {
        return @"ABC";
    }
    @end
    
    //默认情况下(不重写) 使用NSLog和%@输出对象时 结果是: <类名: 内存地址>
    //会调用对象的-description方法
    //拿到-description方法的返回值(NSString *)显示到屏幕上
    //-description方法默认返回的是"类名 + 内存地址";
    //便于观察结果 一般重写父类的-description方法

    SEL类型

    1.方法的存储位置

    每个类的方法列表都存储在类对象中

    每个方法都有一个与之对应的SEL类型的对象

    根据一个SEL对象就可以找到方法的地址 进而调用方法

    2.SEL对象的创建

    SEL s = @selector(方法名);

    SEL s2 = NSSelectorFromString(@"test");

    3.SEL对象的其他用法

    将SEL对象转为NSString对象

    NSString *str = NSStringFromSelector(@selector(方法名));

    根据SEL调方法

    [p performSelector : @selector(方法名)];

    [p performSelector : @selector(方法名) withObject : 实际参数];

    [self performSelector : _cmd]//会引发死循环 _cmd代表着当前方法

  • 相关阅读:
    团队作业3--需求改进&系统设计
    需求分析&原型设计
    团队项目作业1-团队展示
    结对编程
    APP案例分析之华为浏览器
    四则运算生成器做法思路
    关于PHP使用GD库生成的验证码无法在别处显示
    第二次课程心得
    两个程序代码
    5.8下午
  • 原文地址:https://www.cnblogs.com/huangyi-427/p/4601750.html
Copyright © 2011-2022 走看看