2014-04-11 87 views
0

为什么_objc_autoreleasePoolPrint()在OS X中工作,但不在iOS上?为什么_objc_autoreleasePoolPrint()不适用于iOS?

UPDATE

我没有示例代码,因为它不依赖于特定的代码。

在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]: ############## 

而且相同的代码在main.m iOS中(或在其他任何地方)项目,会出现没有任何东西在控当我在调试器试图po _objc_autoreleasePoolPrint()我有nil

(lldb) po _objc_autoreleasePoolPrint() 
nil 
+1

实施召唤出'(_V) cprintf()',那么你确定你确实在寻找正确的输出控制台吗? – CodaFi

+0

问题太短。请提供更多的上下文和/或示例代码。 –

+0

@CodaFi我见过他们全部:) – Rusik

回答

0

你需要先申报

extern void _objc_autoreleasePoolPrint(); 

,那么你可以调用

_objc_autoreleasePoolPrint() 
相关问题