Как уже упоминал Коббал [[cls alloc] init]
- обычная практика. alloc
- это метод статического класса, определенный в NSObject, который выделяет память, а init является конструктором экземпляра. Многие классы предоставляют удобные конструкторы, которые делают это за один шаг. Пример:
NSString* str = [NSString stringWithString:@"Blah..."];
Обратите внимание на *
после NSString
. Вы работаете по существу с C здесь, так что указатели на объекты!
Также не забудьте освободить память, выделенную с помощью alloc
с соответствующим [instance release]
. Вам не нужно освобождать память, созданную с помощью удобного конструктора, поскольку она автоматически освобождается для вас. Когда вы возвращаете свой новый экземпляр cls, вы должны добавить его в пул автоматического выпуска, чтобы не допустить утечки памяти:
return [[[cls alloc] init] autorelease];
Надеюсь, это поможет.