我有一些简单的代码(从SO复制并粘贴),它将KLM(基于XML)文件加载到iOS的文档目录中。然后,我在地图上显示加载的数据。
我意识到这不是下载和保存文件的好方法 - 似乎建议使用NSUrlConnection,以便可以管理加载。但我对这一切都不熟悉,我想首先了解这种情况下发生的事情。
以下是代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0],@"index.kml"];
// Download and write to file
NSURL *url = [NSURL URLWithString:@"http://www.domain.co.uk/kml-resource..."];
NSData *urlData = [NSData dataWithContentsOfURL:url];
[urlData writeToFile:filePath atomically:YES];
NSURL *fileurl = [NSURL fileURLWithPath:filePath];
kmlParser = [[KMLParser alloc] initWithURL:fileurl];
.....
我的问题是:
非常感谢
答案 0 :(得分:0)
dataWithContentsOfURL是阻塞方法,所以是的,你不应该在主线程上运行它。
可能有内部超时,但这是私密的...可能是60秒。
文档没有说明缓存,所以我认为它根本不会缓存。