gpt4 book ai didi

iphone - 不止一次将值写入 .plist?

转载 作者:行者123 更新时间:2023-11-28 22:50:53 30 4
gpt4 key购买 nike

我有一个 iPhone 应用程序正在开发中,我在应用程序中有一个设置页面。我使用 .plist 来存储用户选择的设置,然后我稍后从 .plist 中读取数据。这不是你创建项目时自带的-Info.plist,它是另外一个plist文件。当我在编码后测试设置时,它起作用了。可以读取设置,这是我使用的正确设置。但是,我回到同一个应用程序 session 中的设置,并更改了相同的设置。当我去应用程序查看它是否读取新设置时,它只使用旧的(第一个)设置。我再次尝试,但结果相同。我只能写一次设置,我不能“重写”或“覆盖”相同的设置。我无法弄清楚我的生活出了什么问题。

最佳答案

您不能覆盖或写入应用程序包本身中的文件。如果你想写入一个文件,你应该先将它复制到应用程序的库或文档目录,像这样:

NSString *docsDir = [NSSearchPathsForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask) objectAtIndex:0];
NSString *plistFile = @"myplist.plist";
NSString *plistInBundle = [[NSBundle mainBundle] pathForResource:plistFile ofType:nil];
NSString *plistInDocsDir = [docsDir stringByAppendingPathComponent:plistFile];
[[NSFileManager defaultManager] copyItemAtPath:plistInBundle toPath:plistInDocsDir error:NULL];
// now `plistInDocsDir` is (over)writeable

但是,为了存储您应用的首选项,最好使用 NSUserDefaults类:

[[NSUserDefaults standardUserDefaults] setObject:@"Some string" forKey:@"MySettingKey"];

和/或创建一个 Preference Bundle为您的应用。

关于iphone - 不止一次将值写入 .plist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029354/

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