![objective-c – Obj-,’self’时使用的实例变量未设置为'[(super或self)init …]的结果,第1张 objective-c – Obj-,’self’时使用的实例变量未设置为'[(super或self)init …]的结果,第1张](/aiimages/objective-c+%E2%80%93+Obj-%2C%E2%80%99self%E2%80%99%E6%97%B6%E4%BD%BF%E7%94%A8%E7%9A%84%E5%AE%9E%E4%BE%8B%E5%8F%98%E9%87%8F%E6%9C%AA%E8%AE%BE%E7%BD%AE%E4%B8%BA%26amp%3B%2339%3B%5B%28super%E6%88%96self%29init+%E2%80%A6%5D%E7%9A%84%E7%BB%93%E6%9E%9C.png)
-(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 …]的结果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)