0

我有一个问题,无法真正找到直接的答案。

我有一个从 xml 文件下载所有内容的应用程序。不幸的是,当用户没有互联网连接时,应用程序就没用了。我希望我的应用程序在没有互联网的情况下也有用。

我现在要做的是检查是否有互联网,如果有,下载并解析 xml 并检索所有图像和文本。接下来,我想保存它,并且仅在用户请求时刷新数据。如果没有互联网,应用程序应直接转到其保存的 xml 文件和保存的图像等。

我需要知道如何保存图像和文本,这甚至允许吗?我在某处读到了如何将图像保存到文档文件夹,但我可以说会有大约 300 张图像,这不会很乱吗?这甚至允许吗?

此外,如何保存文本?是否可以结合使用 sqlite 和保存到文档文件夹来做到这一点?

普拉斯托

4

1 回答 1

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]]];

}
于 2012-08-24T08:47:41.887 回答