为什么_objc_autoreleasePoolPrint()无法在iOS上运行?

时间:2014-04-11 20:23:02

标签: ios objective-c macos

为什么_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

1 个答案:

答案 0 :(得分:0)

你需要先声明

extern void _objc_autoreleasePoolPrint();

然后你可以打电话

_objc_autoreleasePoolPrint()