我们平常敲的Objective-C代码,底层实现其实是C/C++代码.那么一个OC对象占用多少内存.
iOS开发中Objective-C和swift用的是Clang/LLVM来编译的.
使用的clang编译器编译成cpp,xcodebuild负责将OC/Swift工程编译成xxx.app,xcrun负责给xxx.app签名并打包成xxx.ipa
#import <Foundation/Foundation.h>
int main(int argc, char * argv[]) {
@autoreleasepool {
NSObject *obj = [[NSObject alloc] init];
NSLog(@"hello world!");
}
return 0;
}
通过clang编译器编译成cpp,执行
clang -rewrite-objc main.m -o main.cpp
我们也可以指定iphoneos/arm64,执行
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m -o main64.cpp
生成main64.cpp,其中main函数的执行代码转换成C/C++的代码:
#pragma clang assume_nonnull end
int main(int argc, char * ar