Iphone 返回类自身内的类实例
我正在尝试编写一个UIToolbar子类,但遇到了一些问题。这是我第一次真正尝试将任何事情细分,所以如果是愚蠢的事情,请原谅我。我不知道如何从类自身返回类的实例。 乙二醇Iphone 返回类自身内的类实例,iphone,objective-c,Iphone,Objective C,我正在尝试编写一个UIToolbar子类,但遇到了一些问题。这是我第一次真正尝试将任何事情细分,所以如果是愚蠢的事情,请原谅我。我不知道如何从类自身返回类的实例。 乙二醇 键盘工具栏*工具栏; @属性(非原子,保留)键盘工具栏*工具栏; toolbar=[[keyboardToolBar alloc]initWithFrame:CGRectMake(0,0,self.view.bounds.size.width,50) -(键盘工具栏*)initWithFrame:(CGRect)frame{
键盘工具栏*工具栏;
@属性(非原子,保留)键盘工具栏*工具栏;
toolbar=[[keyboardToolBar alloc]initWithFrame:CGRectMake(0,0,self.view.bounds.size.width,50)
-(键盘工具栏*)initWithFrame:(CGRect)frame{
keyboardToolBar*keyboard=[[keyboardToolBar alloc]initWithFrame:frame];您是否检查了此处的示例项目:此处有许多不清楚的地方。您是否正在尝试创建方便的方法?在这种情况下,您应该调用它keyboardToolBar WithFrame:
,并像这样实现它
+ (id)keyboardToolbarWithFrame:(CGRect)frame {
return [[[self alloc] initWithFrame:frame] autorelease];
}
请注意,+
符号表示它是一个类方法。这将为您提供一个类的自动释放实例
现在,如果您只是尝试对其超级类进行必要的初始化,您可以删除该方法。它将调用超级类“initWithFrame:
方法。但通常您自己的实现是这样的
- (id)initWithFrame:(CGRect)frame {
self = [super init];
if ( self ) {
// Do your class initializations here.
}
return self;
}
谢谢,第二个选项是我想要的,我忘了调用self=[super init];
- (id)initWithFrame:(CGRect)frame {
self = [super init];
if ( self ) {
// Do your class initializations here.
}
return self;
}