Rob*_*art 2 iphone objective-c nsstring ipad
我有以下情况,这似乎导致我的iPad应用程序泄漏内存.
我有一个字符串属性的类...
@property(nonatomic,retain) NSString * synopsis;
Run Code Online (Sandbox Code Playgroud)
我从一些HTTP响应中设置字符串属性,来自JSON或XML响应.
此时,概要对象的保留计数为1.
但我有这种情况:
我将概要保存到本地sqlite数据库,然后我想从内存中释放它,但我有一种奇怪的情况,[synopsis release]从我的对象内部调用不会将保留计数减少到0.
(void) save
{
NSLog(@"synopsis before save retainCount=%d",[synopsis retainCount]);
[self saveToDb:synopsis withKey:@"synopsis"];
NSLog(@"synopsis after save retainCount=%d",[synopsis retainCount]);
[synopsis release];
NSLog(@"synopsis after release retainCount=%d",[synopsis retainCount]);
synopsis=nil;
}
Run Code Online (Sandbox Code Playgroud)
在控制台中,我得到:
synopsis before save retainCount=1
synopsis after save retainCount=1
synopsis after release retainCount=1
Run Code Online (Sandbox Code Playgroud)
这怎么可能?我在模拟器或设备上运行相同的结果.
mip*_*adi 10
RETAINCOUNT!对于人类来说,它不是对象所有权的准确度量.你不知道框架中的调用retain和release幕后操作是什么.
Cocoa中的内存管理很简单:
alloc/ init或copy一个物体,请确保你release在某个时候给它打电话.retain- 但也要确保release在某个时刻打电话.| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |