gpt4 book ai didi

cocoa - NSUserDefaults 未在 IOS4 中加载

转载 作者:行者123 更新时间:2023-12-03 17:16:55 24 4
gpt4 key购买 nike

我有一个在 OS 3.x 下编写的应用程序 - 当时它运行良好。自从为 OS 4.1 重建以来,它不再适用于加载应用程序设置。

我有一个与应用程序捆绑在一起的“root.plist”文件。一些默认设置已经通过编辑文件设置在其中,即主机名、超时等。新用户必须提供一些登录凭据,因此这些凭据留空。当应用程序首次启动时,它会检测到丢失的凭据并关闭,要求用户转到“设置”并输入凭据。如果我打开设置,我会看到我所期望的;主机名、超时和其他默认值,如 root.plist 中所示。我输入用户名和密码,以及另一个 ID 代码。当我重新启动应用程序时,我会获取刚刚输入的数据的值,以及 BOOL 协议(protocol)开关 = YES(我没有更改)。尽管出现在设置中,其他值都返回 nil。

username   = [[NSUserDefaults standardUserDefaults] stringForKey:@"name_preference"];
password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password_preference"];
CRMID = [[[[NSUserDefaults standardUserDefaults] stringForKey:@"userID_preference"]uppercaseString] retain];
hostname = [[NSUserDefaults standardUserDefaults] stringForKey:@"hostname_preference"];
protocolSwitch = [[NSUserDefaults standardUserDefaults] boolForKey:@"http_preference"];
timeout = [[NSUserDefaults standardUserDefaults] doubleForKey:@"timeout_preference"];
portNumber = [[NSUserDefaults standardUserDefaults] integerForKey:@"port_preference"];
bccEmail = [[NSUserDefaults standardUserDefaults] stringForKey:@"bcc_email_preference"];
locationOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"location_preference"];

我知道“同步”,但我实际上并没有在我的应用程序中更改这些值,所以我不知道这如何适用于这里。我还确保应用程序在重新启动之前没有在后台运行,没有什么区别。在 OS4 之前它运行得很好,有人理解行为的变化吗?有办法解决吗?干杯,

Sarge62。

设置结果肯定有问题。当应用程序启动时将字典键转储到控制台后,我看到了这一点:

"location_preference",
NSInterfaceStyle,
AppleLanguages,
"userID_preference",
AppleKeyboardsExpanded,
AppleLocale,
AppleKeyboards,
NSLanguages,
"http_preference",
"password_preference",
"name_preference"

plist 中只定义了五个键!如果我进入设置并将主机名更改为 plist 默认值以外的名称,它将出现在上面的日志中。设置屏幕中似乎有一个错误(?),它只注册从初始默认值更改的键(至少对于字符串对象,BOOLS 是可以的)。

最佳答案

您是否注册了默认值?这通常是在应用委托(delegate)的 + (void)initialize 类方法中完成的。

例如

+ (void)initialize {
NSMutableDictionary *defaultValues = [NSMutableDictionary dictionary];
[defaultValues setObject:@"defaultHostname" forKey:@"hostname"];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
}

关于cocoa - NSUserDefaults 未在 IOS4 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089068/

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