Objective c NSData initWithContentsOfURL:是否不返回原始分配?
在Objective c NSData initWithContentsOfURL:是否不返回原始分配?,objective-c,memory-leaks,memory-management,nsdata,foundation,Objective C,Memory Leaks,Memory Management,Nsdata,Foundation,在NSData的initWithContentsOfURL:的 返回的对象可能与原始接收方不同 这意味着什么?这似乎意味着一个标准的“alloc/init”行可能会泄漏内存。类集群成为最受公众认可的集群有几个原因: - (id)initWithContentsOfURL:(NSURL *)url { self = [super init]; if (self != nil) { NSData * result = [[NSDataClassC
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
的结果),这在任何情况下都是一个好主意,即使没有明确的文档记录