Использование аксессора нормально, если он протекает, значит что-то не так.
В частности, ваш инициализатор должен вызываться правильно, то есть, следуя рекомендациям управления памятью какао, что параметры не принадлежат вызываемому неявно.
Таким образом, было бы хорошо, если бы она передавала автоматически выпущенную строку:
YourObj *obj = [[YourObj alloc] initWithBlah:[NSString stringWithString:@"blah"]];
При следующих утечках из-за передачи в оставшейся строке:
YourObj *obj = [[YourObj alloc] initWithBlah:[[NSString alloc] initWithString:@"blah"]];
Еще одна вещь, о которой вы должны знать, это то, что объявленные свойства не выполняют автоматическую очистку, поэтому обязательно обращайтесь с этим в -dealloc
:
- (void)dealloc {
self.blah = nil;
// ...
}