这是一个示例代码,其中仅释放“字符串”对象。
NSString *nameOfFile = ... ;
NSError *error;
NSString *string = [[NSString alloc] initWithContentsOfFile:nameOfFile encoding:NSUTF8StringEncoding error:&error];
if (string == nil) {
// handle error
}
[string release];
我明白为什么错误对象没有被释放。这是因为这里的方法没有使用“new”或“alloc”方法创建错误对象。相反,这是通过引用返回的,因此 initWithContentsOfFile 方法负责该内存。但是 nameOfFile 对象呢?他们为什么不发布它?它不是通过引用返回的......?