iOS-底层原理 08:方法签名和attribute简写含义

30 阅读1分钟

clang中的方法签名

clang中编译后,方法列表的这些字符的含义是什么

@16@0:8为例

  • @16表示返回字符串占用16个字节 -- 第二个@ 占8字节, sel 占8字节

    • 第一个@ 表示 返回值

    • 16 表示 总共占用的字节数16字节

    • 第二个@:第一个参数

      • id -- @ 统配类型
      • typedef struct objc_object *id
    • 0 -- 从0开始 0-8

    • : -- 代表sel,方法编号

    • 8 -- 8-16

  • 而v24@0:8@16中的 v -- void 无返回值

更多的可以查看官网的以下列表

clang编译后的属性的attribute

clang编译输出了属性的attribute ,同样也可以通过property_getAttributes方法获取

  • T 表示 type
  • @ 表示 变量类型
  • C 表示 copy
  • N 表示 nonatomic
  • V 表示 variable 变量,即下划线变量 _nickName

更多的可以查看官网的以下列表