gpt4 book ai didi

objective-c - boolean 值IOS NSUserdefaults中的反向问号

转载 作者:行者123 更新时间:2023-12-01 17:43:38 26 4
gpt4 key购买 nike

我有一个带有 Storyboard和导航 Controller 的应用程序,如果用户第一次启动该应用程序,我想弹出一个协议(protocol) View ,

在 Appdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//app launched first time
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setBool:YES forKey:@"firstTime"];
BOOL firstTime = [prefs boolForKey:@"firstTime"];
NSLog(@"firstTime %c",firstTime);

//check if user has agreed agreement or not
if ( firstTime==YES) {

//replace and push rootview manually
UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard;

UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"AgreementViewController"];

[self.window.rootViewController presentModalViewController:loginController animated:YES];

return NO;
}else

return YES;
}

Nslog我第一次收到 reverse question mark sign ,我猜它既没有设置为yes也没有设置为no

那么如何设置 boolean 值,将其保存在 ios 设备中并在每次应用启动时调用它?

最佳答案

您需要使用 NSUserDefaults 方法 registerDefaults。该方法允许您设置默认值(在您的情况下为"is"),仅在用户未更改该值时使用。一旦用户将值更改为 NO,注册的默认值将不再有任何效果。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstTime", nil];
BOOL firstTime = [prefs boolForKey:@"firstTime"];
//check if user has agreed agreement or not
if ( firstTime==YES) { .....

然后,稍后当用户完成您想要的操作时,您会以通常的方式将键的值“firstTime”设置为 NO。

关于objective-c - boolean 值IOS NSUserdefaults中的反向问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12533641/

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