objective-c – Obj-,’self’时使用的实例变量未设置为'[(super或self)init …]的结果

objective-c – Obj-,’self’时使用的实例变量未设置为'[(super或self)init …]的结果,第1张

概述我已经问了一个类似的问题,但我仍然看不出问题? -(id)initWithKeyPadType: (int)value{ [self setKeyPadType:value]; self = [self init]; if( self != nil ) { //self.intKeyPadType = value; } retur 我已经问了一个类似的问题,但我仍然看不出问题?

-(ID)initWithKeyPadType: (int)value{    [self setKeyPadType:value];    self = [self init];    if( self != nil )    {        //self.intKeyPadType = value;    }    return self;}- (ID)init {    NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init]                                                               autorelease];    decimalSymbol = [formatter decimalSeparator];....

警告来自实例变量上方的行,而’self’未设置为'[(super或self)init …]的结果

解决方法 你要做的是技术上没问题,但在某个阶段你需要调用[super init].如果你的类的init方法执行了许多其他initWith …方法使用的常见初始化,那么将你的[super init]放在那里.此外,在尝试使用实例变量之前,始终确保已初始化该类.

- (ID) initWithKeyPadType: (int)value{    self = [self init]; // invoke common initialisation    if( self != nil )    {        [self setKeyPadType:value];    }    return self;}- (ID) init{    self = [super init]; // invoke NSObject initialisation (or whoever superclass is)    if (!self) return nil;    NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init]                                                           autorelease];    decimalSymbol = [formatter decimalSeparator];    ...
总结

以上是内存溢出为你收集整理的objective-c – Obj-,’self’时使用的实例变量未设置为'[(super或self)init …]的结果全部内容,希望文章能够帮你解决objective-c – Obj-,’self’时使用的实例变量未设置为'[(super或self)init …]的结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1023745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存