gpt4 book ai didi

iphone - 我在 plist 中的信息未保存

转载 作者:行者123 更新时间:2023-11-28 22:58:48 24 4
gpt4 key购买 nike

我在 plist 中有一些设置,但是当我终止我的应用程序时,我丢失了存储在那里的所有数据。

这是我正在使用的代码:

.h

@property (retain, nonatomic) NSString *plistFilePath;
-(IBAction)setHomepage:(id)sender;

.m

@syntehzise plistFilePath;

-(IBAction)setHomepage:(id)sender{
plistFilePath = [NSString stringWithString:[[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"]];
NSMutableDictionary *data= [[NSMutableDictionary alloc] initWithContentsOfFile:plistFilePath];
[data setObject:@"http://www.google.com" forKey:@"Homepage"];
[data writeToFile:plistFilePath atomically:YES];
[data release];

}

我做错了什么吗?我应该使用不同的类还是不同的方法?请帮助我,因为我不知道为什么我存储了很好的信息,但是当我杀死应用程序时,我丢失了它。

最佳答案

如前所述,该包是只读的。

尽量避免在复制的 plist 中设置“设置”,因为 plist 只是需要管理的另一件事。相反,为什么不使用 NSUserDefaults and import your defaults来自默认 plist。例如,向您的项目添加一个新的 plist,并将其添加到您的委托(delegate)中:

// Get the shared defaults object
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

// Register the defaults each time the app loads
NSString *defaultsFile = [[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"];
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:defaultsFile];
[defaults registerDefaults:defaultsDict];

现在你可以像这样保存数据:

// Store the data
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"http://mattmelton.co.uk" forKey:@"HomePage"];
[defaults synchronize];

然后像这样检索它:

// Retrieve data
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *homePage = [defaults objectForKey:@"HomePage"];

而且您不必担心外部文件。当然,您的默认 plist 可以是特定于平台、用户或设备的!

希望这对您有所帮助!

关于iphone - 我在 plist 中的信息未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337465/

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