Я звоню в веб-интерфейс из приложения iPhone, чтобы получить данные с сервера. Теперь я хотел бы сохранить эти данные в том виде, в каком они есть локально. После изумления, я получил реальное решение для хранения всего этого материала локально в файле plist, а не в базе данных.
Итак, какой у меня вопрос Могу ли я сохранить сложную структуру или вложенный массив, вложив словарь в файл plist?
![enter image description here](https://i.stack.imgur.com/4k0Pa.png)
Ниже приведен фрагмент кода, который я использую для локального хранения. Используя этот код, .plist успешно создается в каталоге документов приложения, доступном в Simulator.
-(NSString *)Return_PlistPathCreation
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *libraryPath = [paths objectAtIndex:0];
NSString *plistPath = [libraryPath stringByAppendingPathComponent:@"LoadedNews.plist"];
// Checks if the file exists at the writable location.
if ( ![[NSFileManager defaultManager] fileExistsAtPath:plistPath] ) {
NSString *masterFilePath = [[NSBundle mainBundle] pathForResource:@"LoadedNews" ofType:@"plist"];
// Try to copy the master file to the writable location
NSError *error;
if ( ![[NSFileManager defaultManager] copyItemAtPath:masterFilePath toPath:plistPath error:&error] ) {
NSLog(@"Error: %@", [error localizedDescription]);
// Serious error.
}
}
return plistPath;
}
Ниже кода для записи данных Array. Но в файл ничего не записывается. Если я использую Dicrtionary с парой значений ключа множественного числа, я могу записать содержимое в тот же файл plist .
//This code works perfectly.
NSArray *arr =[NSArray arrayWithObjects:@"ajay",@"sharma",nil];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:arr forKey:@"FullName"];
[[dict JSONRepresentation] writeToFile:plistPath atomically:YES encoding:NSASCIIStringEncoding error:nil];
Но тот же код не работает для моего массива, который проанализировал содержимое внутри него.
NSArray *arr =[NSArray arrayWithArray:ComplexDataArray];
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:arr forKey:@"Data"];
[[dict JSONRepresentation] writeToFile:plistPath atomically:YES encoding:NSASCIIStringEncoding error:nil];
Может кто-нибудь подсказать мне, в чем проблема записи данных в файл .plist.
Заранее спасибо ....