objc-runtime.h 中代碼:
#include <objc/runtime.h>
#include<objc/message.h>
message.h封裝著objc_msgsend(),objc_msgsendSuper()等方法
所以想要使用以上方法得引入objc-runtime.h
runtime.h 就是我們平時(shí)使用runtime機(jī)制常調(diào)用的頭文件
NSObjCRuntime.h它和runtime.h一樣都引用了
TargetConditionals.h和objc/objc.hNSO...中全是宏定義和預(yù)編譯指令
核心代碼:
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedeflongNSInteger;
typedefunsignedlongNSUInteger;
#else
typedefintNSInteger;
typedefunsignedintNSUInteger;
#endif
由此看,NSO...主要做不同設(shè)備上NSInteger類型切換的。
欲編譯指令翻譯:(可能不太準(zhǔn)確,如果有錯(cuò)期待你的指點(diǎn))
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
設(shè)備 為64位 或 使用的操作系統(tǒng)是嵌入式的并且使用的不是蘋果系統(tǒng) 或 是win32位系統(tǒng) 或 創(chuàng)建時(shí)是32位但支持64位