объявите свойство как сохраняемое в заголовке:
@property (nonatomic. retain) MyType *attribute;
В файле реализации синтезируйте iVar:
@synthesize attribute;
Но предоставьте свой собственный метод получения, который переопределит синтезированный:
- (MyType)attribute {
return [attribute copy];
}
Я знаю, что я не выпускаю автоматически возвращаемый объект, но, поскольку вопрос не касается iOS, я пишу это с точки зрения среды сборки мусора.