Есть несколько причин, по которым кластеры классов являются наиболее общеизвестными:
- (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
), что является хорошей идеей в любом случае - даже если это явно не задокументировано.