Я понимаю, что, начиная с 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 во время разработки, могу ли я вместо этого просто вызвать метод свойства?