这是一个示例代码,其中只有“string”对象被释放。为什么我不必释放这些对象?
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对象呢?他们为什么不释放它?它不是通过引用返回...?
您需要用两个“F”字在十六进制值,或十进制应该是2^23 - 1,而不是2^31 - 1。 – paxdiablo 2009-04-26 00:13:28