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

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"];

你可能感兴趣的:(YYModel源码分析(一))