gpt4 book ai didi

objective-c - Obj-, 'self'没有设置为 '[(super or self) init...]'的结果时使用的实例变量

转载 作者:太空狗 更新时间:2023-10-30 03:51:25 25 4
gpt4 key购买 nike

我已经问过类似的问题了,但我还是看不出问题是什么?

-(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];
....

警告来自 Instance variable used while 'self' is not set to the result of '[(super or self) init...]'

最佳答案

您尝试做的事情在技术上是可行的,但在某些阶段您需要调用[super init]。如果你的类的 init 方法做了很多其他 initWith... 方法使用的常见初始化,那么把你的 [super init] 放在那里.此外,在尝试使用实例变量之前,始终确保该类已被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 or self) init...]'的结果时使用的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com