Apple 建议不要在初始化程序中使用属性方法,但是如果您需要从初始化程序调用方法,并且还需要在对象初始化后从程序中的其他位置调用该方法,我不确定要遵循的协议。例如,您有:
- (id) init
{
self = [super init];
if (self)
{
[self someMethod];
}
return self;
}
- (void) someMethod
{
_x = 0; \\ or self.x = 0 when this method is not called from initializer
}
someMethod
其中包含一堆 ivars。问题是,它还需要在对象初始化后稍后在代码中的其他位置调用。我希望从那里调用访问器时不要在初始化程序中访问它,但我也希望在someMethod
从其他地方调用它们时访问它们。有没有一种巧妙的方法来解决这种模式?使用时NSObject
?使用时UIView
?使用时UIViewController
?