这是2个代码快照-
@interface A:NSObject
{
NSMutableArray *a;
}
@property (retain) NSMutableArray *a;
@implementation
@synthesize a;
-(id)init
{
if(self=[super init])
{
a=[[NSMutableArray alloc] init];
}
}
@end
@interface A:NSObject
{
NSMutableArray *_a;
}
@property (retain) NSMutableArray *a;
@implementation
@synthesize a=_a;
-(id)init
{
if(self=[super init])
{
_a=[[NSMutableArray alloc] init];
}
}
@end
现在我需要知道的是,在两个代码实例变量中直接赋值而不是使用访问器并且保留计数为 1?或者他们之间有区别。谢谢。
还有一件事,Apple 建议不要在 init/dealloc 中使用 accessor,但同时要求不要直接设置 iVar。那么在 init() 中分配 ivar 值的最佳方法是什么?