Существует ряд правил, которым следуют имена методов - читать эту ссылку ;)
В основном имена начинаются с alloc
, new
, copy
или mutableCopy
требует, чтобы вы вызывали release
(или autorelease
).
Любые другие методы, которые возвращают объект, будут возвращать автоматически освобожденные объекты.
Например:
// You need to release these
NSString *myString = [[NSString alloc] init];
NSString *nextString = [myString copy];
UIbutton *button = [[UIButton alloc] initWithType:UIButtonTypeCustom];
// You don't need to release these
NSString *thirdString = [NSString stringWithString:@"Hello"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
Надеюсь, это поможет!