Автоматические iVars с @synthesize

Я понимаю, что, начиная с iOS 4, теперь есть возможность вообще не объявлять iVars и разрешить компилятору автоматически создавать их для вас, когда вы синтезируете свойство. Однако я не могу найти никакой документации от Apple по этой функции.

Кроме того, есть ли какая-либо документация по передовым методам или рекомендации Apple по использованию iVars и свойств? Я всегда использую такие свойства:

.h файл

@interface myClass {
    NSIndexPath *_indexPath
}

@property(nonatomic, retain) NSIndexPath *indexPath

@end

.m файл

@implementation myClass

@synthesize indexPath = _indexPath;

- (void)dealloc {
    [_indexPath release];
}
@end

Я использую _indexPath вместо indexPath в качестве имени iVar, чтобы убедиться, что я никогда не использую indexPath , когда мне нужно использовать self.indexPath . Но теперь, когда iOS поддерживает автоматические свойства, мне не о чем беспокоиться. Однако, если я оставлю объявление iVar, как мне справиться с его освобождением в моем освобождении? Меня научили использовать iVars напрямую при освобождении в dealloc, а не использовать методы свойств. Если у меня нет iVar во время разработки, могу ли я вместо этого просто вызвать метод свойства?

6
задан GendoIkari 17 March 2011 в 18:23
поделиться