gpt4 book ai didi

Objective-C cocoa 应用程序覆盖 JSON 文件

转载 作者:行者123 更新时间:2023-12-03 17:51:33 25 4
gpt4 key购买 nike

如何使用其他 json 文件的值覆盖 json 文件?我使用 2 个 json 文件来存储应用程序配置的数据,一个是应用程序的默认值,另一个是用户给出的自定义配置值,它将始终运行从自定义文件中检索数据,所以如果用户想要恢复原始配置,它会采用默认文件的值并覆盖自定义文件,这就是逻辑,但我仍在尝试弄清楚如何覆盖文件。

这是我试图在代码中执行的操作,但仍然没有编写任何内容:

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"custom" ofType:@"json"];
// Retrieve local JSON file called custom.json
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSError *error = nil; // This so that we can access the error if something goes wrong
NSData *JSONData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:&error];
// Load the file into an NSData object called JSONData

NSDictionary *lista = [NSJSONSerialization JSONObjectWithData:JSONData options:0 error:nil];

NSNumber * test = [lista objectForKey:@"tempoTrabalho1"];
NSInteger teste = [test integerValue];

NSLog(@"%ld",(long)teste);

//file to copy from
NSString *json = [ [NSBundle mainBundle] pathForResource:@"example" ofType:@"json"];
NSData *jsonData = [NSData dataWithContentsOfFile:json options:kNilOptions error:nil];

//write file to device
[jsonData writeToFile:filePath atomically:YES];
}

@end

我想用 example.json 覆盖 custom.json:

示例.json:

{
"tempoTrabalho1": 25,
"tempoTrabalho2": 25,
"tempoTrabalho3": 25,
"tempoTrabalho4": 25,
"tempoDescanso1": 5,
"tempoDescanso2": 5,
"tempoDescanso3": 5,
"tempoDescanso4": 20
}

自定义.json:

{
"tempoTrabalho1": 30,
"tempoTrabalho2": 30,
"tempoTrabalho3": 30,
"tempoTrabalho4": 30,
"tempoDescanso1": 10,
"tempoDescanso2": 10,
"tempoDescanso3": 10,
"tempoDescanso4": 30
}

最佳答案

[NSData writeToFile:atomically:]方法将默认覆盖(您必须使用接受选项并指定 NSDataWritingWithoutOverwriting 的方法版本,以便覆盖)。

关于Objective-C cocoa 应用程序覆盖 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25292673/

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