objc-runtime.h 中代码:
#include <objc/runtime.h>
#include<objc/message.h>
message.h封装着objc_msgsend(),objc_msgsendSuper()等方法
所以想要使用以上方法得引入objc-runtime.h
runtime.h 就是我们平时使用runtime机制常调用的头文件
NSObjCRuntime.h它和runtime.h一样都引用了
TargetConditionals.h和objc/objc.hNSO...中全是宏定义和预编译指令
核心代码:
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedeflongNSInteger;
typedefunsignedlongNSUInteger;
#else
typedefintNSInteger;
typedefunsignedintNSUInteger;
#endif
由此看,NSO...主要做不同设备上NSInteger类型切换的。
欲编译指令翻译:(可能不太准确,如果有错期待你的指点)
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
设备 为64位 或 使用的操作系统是嵌入式的并且使用的不是苹果系统 或 是win32位系统 或 创建时是32位但支持64位
网友评论