gpt4 book ai didi

iphone - 将 NSMutableDictionary 保存到 plist 问题

转载 作者:行者123 更新时间:2023-11-29 11:08:45 24 4
gpt4 key购买 nike

在设备上测试我的应用程序时,我遇到了一个奇怪的行为。这是我用来更新键值的函数,它在我的 iPhone 模拟器上运行顺利。确实很好。但是,plist 第 6 行的 nslog 在设备上返回 null。您对我做错的原因和错误有什么想法吗?提前谢谢你

-(void) updateData:(int)contacto campo:(int)campo {

NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"Data.plist"];

NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
NSLog(@"%@",plistDict);

switch (campo) {
case 0:
veterinarioID = contacto;
[plistDict setValue:[NSNumber numberWithInt:veterinarioID] forKey:@"veterinario"];
NSLog(@"%d",veterinarioID);
break;
case 1:
peluqueriaID = contacto;
[plistDict setValue:[NSNumber numberWithInt:peluqueriaID] forKey:@"peluqueria"];
NSLog(@"%d",peluqueriaID);

break;
case 2:
residenciaID = contacto;
[plistDict setValue:[NSNumber numberWithInt:residenciaID] forKey:@"residencia"];
NSLog(@"%d",residenciaID);
break;
default:
break;
}
[plistDict writeToFile:plistPath atomically: YES];

}

最佳答案

我的猜测是您的代码随着时间的推移而发展,并且您在模拟器中已经有一个现有的字典很长时间了。因此,该文件已经在那里存在了很长时间。

现在在设备上,如果文件不存在,则字典为零,注释将永远保存。

将您的代码更改为以下内容,我相信问题会得到解决:

NSMutableDictionary *plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
if(!plistDict) plistDict = [NSMutableDictionary new]; // I like using 'new'
NSLog(@"%@",plistDict);

关于iphone - 将 NSMutableDictionary 保存到 plist 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12543444/

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