Барри уже ответил на него, но позвольте мне сформулировать это по-другому:
Определенно а) - это обычный подход.
Вы можете повторно использовать объект, как вы предлагаете в б), но когда выдля этого никогда не создавайте свой класс так, чтобы вы вызывали методы с именем init...
более одного раза .Это противоречит всем установленным обычаям Objective-C.
Например, NSMutableString
.Вы можете инициализировать один с помощью
NSMutableString* ms=[[NSMutableString alloc] initWithString:@"boo"];
и сбросить его, набрав
[ms setString:@"bar"];
, но вы никогда не сделаете
[ms initWithString:@"boo"];
.методы с именем init...
должны появляться только вместе с alloc
, а не где-либо еще.