基础知识记录
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_EXTERN
。FOUNDATION_EXTERN
就是定义一个常量的宏,与#define
相比我们在比较两个字符串时可以直接用=
号。#define
用isEqualToString
。#define
会加入预编译处理,所以宏定义太多的话会稍微影响编译速度。 - 用法
FOUNDATION_EXPORT NSString * const testString;
testString = @"testString";
#define testString @"testString"
[testString isEqualToString:@"testString"];