[英]How to download xml file and save in local iphone application
我有一個雜志應用程序我希望它從服務器加載文件並在應用程序第一次啟動時將其存儲在應用程序中,然后使用該本地文件以節省時間我獲取位於服務器上的數據需要很多時間
NSURL*myurl=url;
myurl = [myurl stringByReplacingOccurrencesOfString:@"\n" withString:@""];
myurl = [myurl stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSURL*urlloaded= [[NSURL alloc]initWithString:myurl];
//NSURL*url= [[NSURL alloc]initWithString:@"http://localhost:8888/RowOne.xml"];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:urlloaded];
//初始化委托。
RowTwoParser *parser = [[RowTwoParser alloc] initXMLParser];
//設置委托
[xmlParser setDelegate:parser];
BOOL success = [xmlParser parse];
if(success)
NSLog(@"No Errors");
else
NSLog(@"Error Error Error!!!");
您可以使用類似的東西下載初始數據,即XML文件
- (void)downloadInitialData {
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults boolForKey:@"DATA_DOWNLOAD_KEY"] == NO) {
[self showWaitViewWithText:@"Downloading Data..."];
[self fetchDataFromServer];
}
}
- (void)fetchDataFromServer {
//Call to server to downlaod data
//When Data is successfully downloaded
//Stop loading when data save completes
[self stopLoading];
//Update USerDefaults
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:YES forKey:@"DATA_DOWNLOAD_KEY"];
[userDefaults synchronize];
}
你可以撥打[self downloadInitialData];
這將確保在應用程序啟動時僅下載一次數據。 您必須根據您的要求通過重置@“DATA_DOWNLOAD_KEY”鍵來修復它以下載數據。
你能做的是: -
假設你已經在數組中解析了你的xml和存儲的數據,說' dataArray
'
現在,您必須在NSUserDefaults
保存dataArray
NSUserDefaults *pref1=[NSUserDefaults standardUserDefaults];
[pref1 setObject:dataArray forKey:@"parseData"];
[pref1 synchronize];
每當您必須使用此數據時,您可以將其提取為: -
NSUserDefaults *pref1=[NSUserDefaults standardUserDefaults];
NSArray *dataArray=[pref1 objectForKey:@"parseData"];
查看Apples自己的SeismicXML示例 - 可用的源代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.