He leído una serie de fragmentos que mencionan que nunca se debe usar la notación de puntos dentro de los métodos init o dealloc. Sin embargo, parece que nunca puedo descubrir por qué. Una publicación mencionó de paso que tiene que ver con KVO, pero no más.Objective-C Dot Sintaxis e Init
@interface MyClass : NSObject {
SomeObject *object_;
}
@property (nonatomic, retain) SomeObject *object;
@end
¿Esta implementación es mala?
@implementation MyClass
@synthesize object = object_;
- (id)initWithObject:(SomeObject *)object {
if (self = [super init]) {
self.object = object;
}
return self;
}
@end
¿Pero esto es bueno?
@implementation MyClass
@synthesize object = object_;
- (id)initWithObject:(SomeObject *)object {
if (self = [super init]) {
object_ = [object retain];
}
return self;
}
@end
¿Cuáles son las dificultades de usar notación de puntos dentro de su init?
Parece que en el segundo ejemplo debe escribir object_ = [object retain]; – Vladimir
corregido, el problema con ejemplos escritos rápidamente. ;) – MarkPowell