Tha*_*nks 2 iphone cocoa-touch memory-management objective-c uikit
这是一个示例代码,只释放"string"对象.
NSString *nameOfFile = ... ;
NSError *error;
NSString *string = [[NSString alloc] initWithContentsOfFile:nameOfFile encoding:NSUTF8StringEncoding error:&error];
if (string == nil) {
// handle error
}
[string release];
Run Code Online (Sandbox Code Playgroud)
我理解为什么不释放错误对象.这是因为此处的方法没有使用"new"或"alloc"方法创建该错误对象.相反,这个是通过引用返回的,因此initWithContentsOfFile方法负责该内存.但是nameOfFile对象怎么样?他们为什么不释放它?它没有被引用返回......?
类似于你不需要发布的原因error
,你也不需要发布nameOfFile
.在Objective-C中,如果声明一个字符串,因为NSString *temp = @"Hello"
它被视为一个字符串常量,并且不需要释放它.内存引用计数为零,因此无需释放.
归档时间: |
|
查看次数: |
367 次 |
最近记录: |