从URL存储和加载文件

时间:2011-03-23 22:34:07

标签: iphone nsstring nsdata nsurl writetofile

iPhone App

我目前正在尝试了解如何将文件从URL存储到文档目录,然后从文档目录中读取文件。

NSURL *url = [NSURL URLWithString:@"http://some.website.com/file"];

NSData *data = [NSData dataWithContentsOfURL:url];

NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"Timetable.ics"];

[data writeToFile:storePath atomically:TRUE];

我从http://swatiardeshna.blogspot.com/2010/06/how-to-save-file-to-iphone-documents.html

获得了此代码

我想知道这是否是正确这样做的方法,我想知道如何加载文件目录中的文件到NSString ..

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

你看起来是正确的,将该文件读回字符串使用:

编辑:(将usedEncoding更改为编码)

NSError *error = nil;
NSString *fileContents = [NSString stringWithContentsOfFile:storePath encoding:NSUTF8StringEncoding error:&error];

当然,如果使用特定的编码类型,则应更改字符串编码类型,但UTF8可能正确。

答案 1 :(得分:1)

如果你在你的主线程上这样做,那么不,它是不正确的。任何类型的网络连接都应该在后台完成,这样就不会锁定界面。为此,您可以创建新线程(NSThreadperformSelectorInBackground:NSOperation + NSOperationQueue)或在运行循环(NSURLConnection)上安排它。< / p>