我创建了一个以这种方式定义的指定初始化程序的类:
-(id)initWithFrame:(CGRect)frame
aProperty:(float)value {
self = [super initWithFrame:frame];
if(self){
///....do something
}
}
现在我想知道如何避免直接调用 initWithFrame 方法,例如:
MyClass *theObj = [MyClass alloc]initWithFrame:theFrame];
我想过在 initWithFrame 定义中抛出异常:
- (id)initWithFrame:(CGRect)frame
{
@throw ([NSException exceptionWithName:@"InitError"
reason:@"This class needs to be initialized with initWithFrame:aProperty: method"
userInfo:nil]);
}
这是一个好的解决方案吗?