私の開発環境:
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];
}
上記の 2 つの実装は完全に同等ですか? または、小さな違いはありますか?明示的にインスタンス変数を_listData
使用することを意味します[_listData release];
か?
どんなヒントでも大歓迎です。助けてくれてありがとう:D