YYModel源码分析(一)

基础知识记录

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

YYModel.h

__has_include

  • 介绍
    从字面意思可知,此宏传入一个你想引入文件的名称作为参数,如果该文件能够被引入则返回1,否则返回0。
  • 用法
#if __has_include(<AFNetworking/AFNetworking.h>)
#import <AFNetworking/AFNetworking.h>
#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"];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。