Как хранить данные JSON в файле?

Я создаю статью, читающую приложение iOS.

У меня есть файл .json в папке совпадений с именем Data.json Я не могу записать в него данные.

Вот мой код:

- (void)writeJsonToFile {
 //applications Documents dirctory path
 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];

 //live json data url
 NSString *stringURL = ysURL;
 NSURL *url = [NSURL URLWithString:stringURL];
 NSData *urlData = [NSData dataWithContentsOfURL:url];
 //file to write to

 NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, @"Data.json"];
 //attempt to download live data
 if (urlData) {

 [urlData writeToFile:filePath atomically:YES];
 }
 //copy data from initial package into the applications Documents folder
 else {
 //file to write to

 NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, @"Data.json"];
 //file to copy from
 NSString *json = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"json" inDirectory:@"/match/Data.json"];
 NSData *jsonData = [NSData dataWithContentsOfFile:json options:kNilOptions error:nil];

 //write file to device
 [jsonData writeToFile:filePath atomically:YES];
 }
}
2 ответа

не могли бы вы рассказать нам больше о вашей проблеме?

1) Вам не нужно переопределять filePath в другом, потому что вы уже это делали раньше.

NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, @"Data.json"];

И вы должны использовать stringByAppendingPathComponent который автоматически добавляет / вам нужно или нет:

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Data.json]

2) Вы уверены, что ваш Data.json включен в ваш проект? вы получаете нуль?

NSString *json = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"json" inDirectory:@"/match/Data.json"];

3) Для проблемы без нагрузки: (not loaded)

Не удается найти исполняемый файл для CFBundle CertUIFramework.axbundle


Попробуйте использовать метод NSStrings для записи файла и проверьте код ошибки:

NSURL *fileUrl = [[NSBundle mainBundle] URLForResource: @"Data" withExtension:@"json"];
NSError * error;
[json writeToURL:fileUrl atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",error.localizedDescription);

licensed under cc by-sa 3.0 with attribution.