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_EXTERN
。FOUNDATION_EXTERN
就是定义一个常量的宏,与#define
相比我们在比较两个字符串时可以直接用=
号。#define
用isEqualToString
。#define
会加入预编译处理,所以宏定义太多的话会稍微影响编译速度。 - 用法
FOUNDATION_EXPORT NSString * const testString;
testString = @"testString";
#define testString @"testString"
[testString isEqualToString:@"testString"];
推荐阅读
- 如何寻找情感问答App的分析切入点
- D13|D13 张贇 Banner分析
- 自媒体形势分析
- 2020-12(完成事项)
- Android事件传递源码分析
- Python数据分析(一)(Matplotlib使用)
- Quartz|Quartz 源码解析(四) —— QuartzScheduler和Listener事件监听
- 泽宇读书会——如何阅读一本书笔记
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)