下面的代码 非常诡异,大家看一下 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//测试内存是否泄露
NSMutableString *foo=[@"Julia!" mutableCopy] ;
[foo autorelease];
[foo appendString:@" I am happy"];
NSLog(@"%d", [foo retainCount]); //1
[pool release];
NSLog(@"%d", [foo retainCount]); //-1
我把foo 对象放在释放池里面了,然后将池释放之后,就变成-1 ,这时为什么??? 由1到 -1 ,解释一下。
//测试内存是否泄露
NSMutableString *foo=[@"Julia!" mutableCopy] ;
[foo autorelease];
[foo appendString:@" I am happy"];
NSLog(@"%d", [foo retainCount]); //1
[pool release];
NSLog(@"%d", [foo retainCount]); //-1
我把foo 对象放在释放池里面了,然后将池释放之后,就变成-1 ,这时为什么??? 由1到 -1 ,解释一下。
解决方案 »
- 怎么在数组里添加类
- 谁知道tableview显示错位是怎么回事吗?
- 栈是什么?有多大?栈和栈区是同一概念吗??
- 有没有用过core plot的朋友?有个问题请教一下
- iOS 切换视图,求助!!!
- IOS怎么在通知栏显示正在播放的音乐?求大神解答!!
- IOS模拟器能获取运营商信息,网络连接类型以及地理位置吗?
- 请问如何通过代码合并文件
- XCode unrecognized selector sent to instance 错误
- iOS 这样的接口要如何遍历.没有包含NSDictionary的?
- CFSocket通信,判断与服务器的断开问题
- iphone上的蓝牙编程可以实现虚拟串口服务与wince上的蓝牙通信吗?
,
你在这个地方打印出来,说明在那时刻的一个状态,并不完全真实反应程序运行完毕的状态。如果能的话,Xcode就不会有内存泄露检查工具帮你检查了,你自己在末尾检查就可以。