gpt4 book ai didi

ios - 为什么Xcode跳过循环代码?

转载 作者:行者123 更新时间:2023-12-01 19:00:31 25 4
gpt4 key购买 nike

只想问这个方法initWithNibName是否结束,logInIDArraypasswordArray属性会再次变为nil吗?

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
//sharedLogInDataBase returns singleton
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
BNRLogInDataBase *logInDatabase = [BNRLogInDataBase sharedLogInDataBase];
logInDatabase.logInIDArray = [[NSMutableArray alloc]init];
logInDatabase.passwordArray = [[NSMutableArray alloc]init];
}
return self;
}

这是单例方法
+(instancetype)sharedLogInDataBase
{
static BNRLogInDataBase * database = nil;
if (!nil) {
database = [[BNRLogInDataBase alloc]initPrivate];
}
return database;
}

-(instancetype)init
{
@throw [NSException exceptionWithName:@"Singleton" reason:@"use sharedLogInDataBase" userInfo:nil];
}

-(instancetype)initPrivate
{
self = [super init];

return self;
}

最佳答案

您的方法应为:

+ (instancetype)sharedLogInDataBase
{
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});

return sharedInstance;
}

目前,您的 if (!nil)并未达到您的期望。

然后,您的 init方法应调用 initPrivate方法。

关于ios - 为什么Xcode跳过循环代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23217350/

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