gpt4 book ai didi

iOS:无法在 didFinishLaunchingWithOptions 中将 UIApplicationidleTimerDisabled 设置为 YES

转载 作者:行者123 更新时间:2023-11-29 04:59:03 25 4
gpt4 key购买 nike

我有一个iPad应用程序,用户可以通过首选项中的开关将idleTimerDisabled设置为是或否。那部分工作正常。但是,如果应用程序第一次运行,则最初在应用程序委托(delegate)的 didFinishLaunchingWithOptions 方法中将其设置为 YES 不起作用(设备无论如何都会自动 sleep )。

我尝试过先将其设置为“否”,然后设置为"is",如其他线程中所述,但无济于事。首选项的所有其他方面(standardUserDefaults)也都工作正常。

相关代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// if app run for the first time, set these as defaults
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs objectForKey:@"autoSleep"]) {
// this conditional code runs, as traced using NSLog
[prefs setBool:YES forKey:@"autoSleep"];
application.idleTimerDisabled = NO;
application.idleTimerDisabled = YES;
}
}

最佳答案

使用registerDefaults NSUserDefaults 方法,而不是测试 objectForKey 是否为 nil。

另请参阅details about this in the relevant Programming Guide .一旦您使用 registerDefaults 注册了默认值(在您的情况下,您的 "autoSleep" 键的值为 NO),您就可以确保此键中有一个值,要么是用户在应用程序设置中设置的值……要么是默认值(如果用户尚未为其设置值)。

因此它应该可以解决您的问题,因为您的 autoSleep 键始终会有一个值,可以是默认值,也可以是用户提供的值。

关于iOS:无法在 didFinishLaunchingWithOptions 中将 UIApplicationidleTimerDisabled 设置为 YES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355458/

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