我有一个问题,无法真正找到答案。
我有一个应用程序从xml文件下载所有内容。不幸的是,当用户没有互联网连接时,该应用程序是无用的。我希望我的应用程序在没有互联网的情况下也很有用。
我现在要做的是检查是否有互联网,如果是,请下载并解析xml并检索所有图像和文本。接下来,我想保存这个,并且仅在用户请求时刷新数据。如果没有互联网,应用程序应直接转到其保存的xml文件及其保存的图像等。
我需要知道如何保存图像和文字,这是否允许?我在某处读到了如何将图像保存到文件夹中,但我可以说会有大约300张图像,这不会是一个大混乱吗?这甚至是允许的吗?
此外,如何保存文字?是否可以结合使用sqlite和保存到文档文件夹?
Prastow
答案 0 :(得分:0)
您可以将内容存储在plist而不是xml
中将值设置为plist
NSData * data = [NSKeyedArchiver archivedDataWithRootObject:YourDataArray];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *Path =[NSString stringWithFormat:@"%@/%@.plist",docDir,@"Content"];
NSLog(@"%@",Path);
BOOL didWriteSuccessfull = [data writeToFile:Path atomically:YES];
if (didWriteSuccessfull) {
NSLog(@"store succsessfully");
}
else {
NSLog(@"no");
}
从plist获取价值
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *Path =[NSString stringWithFormat:@"%@/%@.plist",docDir,@"Content"];
if ([[NSFileManager defaultManager] fileExistsAtPath:Path])
{
NewsToDisplay=[[NSArray alloc]initWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:[NSData dataWithContentsOfFile:Path]]];
}