YYModel源码分析(一)

基础知识记录 oc运行时定义的几种类型介绍:
Class:objective-c中类的定义
Ivar:对象的实例变量,包括名字、类型
IMP:方法实现。这只是一个指向某个函数的指针,该函数接受一个对象、一个选择器和一个可变长参数列表(varargs),返回一个对象
objc_property_t:属性
SEL:定义选择器,即方法的唯一标识符
YYModel.h __has_include

  • 介绍
    从字面意思可知,此宏传入一个你想引入文件的名称作为参数,如果该文件能够被引入则返回1,否则返回0。
  • 用法
#if __has_include() #import #else #import "AFNetworking.h" #endif

【YYModel源码分析(一)】FOUNDATION_EXPORT
  • 介绍
    FOUNDATION_EXPORT是兼容了win32系统的FOUNDATION_EXTERN,这里我们可以将它当做FOUNDATION_EXTERNFOUNDATION_EXTERN就是定义一个常量的宏,与#define相比我们在比较两个字符串时可以直接用=号。#defineisEqualToString#define会加入预编译处理,所以宏定义太多的话会稍微影响编译速度。
  • 用法
FOUNDATION_EXPORT NSString * const testString; testString = @"testString"; #define testString @"testString" [testString isEqualToString:@"testString"];

    推荐阅读