【发布时间】:2011-03-10 04:38:47
【问题描述】:
我读过一些 sn-ps,其中提到你不应该在你的 init 或 dealloc 方法中使用点符号。但是,我似乎永远无法找出原因。一篇文章确实顺便提到它与 KVO 有关,但仅此而已。
@interface MyClass : NSObject {
SomeObject *object_;
}
@property (nonatomic, retain) SomeObject *object;
@end
这个实现不好?
@implementation MyClass
@synthesize object = object_;
- (id)initWithObject:(SomeObject *)object {
if (self = [super init]) {
self.object = object;
}
return self;
}
@end
但这很好吗?
@implementation MyClass
@synthesize object = object_;
- (id)initWithObject:(SomeObject *)object {
if (self = [super init]) {
object_ = [object retain];
}
return self;
}
@end
在你的 init 中使用点符号有什么缺陷?
【问题讨论】:
-
在第二个例子中你应该写 object_ = [object retain];
-
已修复,快速编写示例的问题。 ;)
标签: objective-c syntax