2
在NSData
的initWithContentsOfURL:
的documentation,它說:NSData initWithContentsOfURL:不返回原始分配?
返回的對象可能會比原來的接收器不同。
那是什麼意思?這似乎意味着標準的「alloc/init」行可能會泄漏內存。
在NSData
的initWithContentsOfURL:
的documentation,它說:NSData initWithContentsOfURL:不返回原始分配?
返回的對象可能會比原來的接收器不同。
那是什麼意思?這似乎意味着標準的「alloc/init」行可能會泄漏內存。
有幾個原因 - 類集羣是最公開承認:
- (id)initWithContentsOfURL:(NSURL *)url
{
self = [super init];
if (self != nil) {
NSData * result =
[[NSDataClassClusterSpecialization alloc] initWithContentsOfURL:url];
[self release];
return result;
}
return self;
}
無泄漏都採用這種形式引入。
它只是意味着你應該只使用alloc
+ init
調用的結果(而不是抓着的alloc
的結果),這是在任何情況下,一個好主意 - 即使沒有明確記載。