我知道从 iOS 4 开始,现在可以完全不声明 iVar,并允许编译器在您合成属性时自动为您创建它们。但是,我找不到 Apple 提供的有关此功能的任何文档。
此外,是否有任何关于使用 iVar 和属性的最佳实践或 Apple 推荐指南的文档?我一直使用这样的属性:
.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 声明,我应该如何处理在我的 dealloc 中释放它?我被教导在 dealloc 中释放时直接使用 iVar,而不是使用属性方法。如果我在设计时没有 iVar,我可以只调用属性方法吗?