我的开发环境:
Xcode 4.6.2
非自动引用计数
例如,假设我们有一个名为 的视图控制器CertainViewController
,其中声明了一个名为的NSArray *
类型化属性listData
,具有属性retain
和nonatomic
。listData
将被加载到表格视图中。我会这样做:
// CertainViewController.h
@interface CertainViewController : UIViewController
{
}
@property (retain, nonatomic) NSArray *listData;
// CertainViewController.m
@implementation CertainViewController
@synthesize listData;
- (void) viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
// someValue is ready
self.listData = someValue;
// Release someValue
}
- (void) dealloc
{
self.listData = nil;
}
而其他一些开发人员会明确指定_listData
属性的实例变量listData
并这样做:
// CertainViewController.h
@interface CertainViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
NSArray *_listData;
}
@property (retain, nonatomic) NSArray *listData;
// CertainViewController.m
@implementation CertainViewController
@synthesize listData = _listData;
- (void) viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
// someValue is ready
self.listData = someValue;
// Release someValue
}
- (void) dealloc
{
[_listData release];
}
以上两种实现是否完全等价?还是有什么细微的差别?显式指定实例变量_listData
只是意味着要使用[_listData release];
?
欢迎任何提示,感谢您的帮助:D