为什么_objc_autoreleasePoolPrint()
在OS X中起作用而在iOS上不起作用?
更新
我没有示例代码,因为它不依赖于特定代码。
在osx中我有:
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array = [NSArray array];
_objc_autoreleasePoolPrint();
}
return 0;
}
结果我在控制台中看到了:
objc[45473]: ##############
objc[45473]: AUTORELEASE POOLS for thread 0x7fff764ae310
objc[45473]: 2 releases pending.
objc[45473]: [0x100803000] ................ PAGE (hot) (cold)
objc[45473]: [0x100803038] ################ POOL 0x100803038
objc[45473]: [0x100803040] 0x100102ff0 __NSArrayI
objc[45473]: ##############
iOS项目中main.m
(或任何其他地方)的相同代码在控制台中没有任何内容。当我在调试器中尝试po _objc_autoreleasePoolPrint()
时,我有nil
(lldb) po _objc_autoreleasePoolPrint()
nil
答案 0 :(得分:0)
你需要先声明
extern void _objc_autoreleasePoolPrint();
然后你可以打电话
_objc_autoreleasePoolPrint()