gpt4 book ai didi

ios - 数据未保存到属性列表 - iOS

转载 作者:行者123 更新时间:2023-11-28 20:03:01 25 4
gpt4 key购买 nike

我已经学习了很多教程,用谷歌搜索了这个问题,但无法理解为什么我无法将数据保存到属性列表中

在我的整个研究过程中,我能够确定“writeToFile”返回 0,这可能是由于自定义数据类型(类)造成的,但我试图保存的只是一个与属性列表兼容的 NSNumber。

请帮忙,因为我不知道为什么这不会保存,我正在 iPhone 模拟器中测试,~/Documents 文件夹中没有创建文件

问候

- (void)saveData{

NSLog(@"*** SAVING DATA ***");
DataManager *datamgr = [DataManager sharedManager];

NSString *error;

//get path of data plist in users Document directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"Data.plist"];

NSNumber *gems = [NSNumber numberWithInt:datamgr.gemCount];

//create arrays for data and keys
NSArray *data = [NSArray arrayWithObjects:gems, nil];
NSArray *keys = [NSArray arrayWithObjects:@"Gems", nil];

//create dictionary with data against keys
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects:data forKeys:keys];

NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict
format:NSPropertyListXMLFormat_v1_0
errorDescription:&error];

//write file from dictionary
if(plistData) {
if([plistData writeToFile:plistPath atomically:YES] != 0){
NSLog(@"write file to plist");
}
}
else {
NSLog(@"%@",error);
}
}

最佳答案

我唯一能看出错误的是你在搜索什么目录。尝试更改:

//get path of data plist in users Document directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];

对此:

//get path of data plist in users Document directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

我还建议在物理设备上调试,模拟器没问题,但在某些情况下它确实有自己的问题。

关于ios - 数据未保存到属性列表 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137237/

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