如何下载xml文件并保存在本地iphone应用程序中

时间:2012-01-12 05:32:25

标签: iphone objective-c

我有一个杂志应用程序我希望它从服务器加载文件并在应用程序第一次启动时将其存储在应用程序中然后使用该本地文件以节省时间我获取位于服务器上的数据需要很多时间< / p>

     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!!!");

3 个答案:

答案 0 :(得分:1)

您可以使用类似的内容下载初始数据,即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”键,根据您的要求修复它以下载数据。

答案 1 :(得分:1)

你能做的是: -

假设您已将数据库中的xml和存储数据解析为“dataArray

现在您必须将dataArray保存在NSUserDefaults

NSUserDefaults *pref1=[NSUserDefaults standardUserDefaults];
[pref1 setObject:dataArray forKey:@"parseData"];    
[pref1 synchronize];

每当您必须使用此数据时,您可以将其提取为: -

NSUserDefaults *pref1=[NSUserDefaults standardUserDefaults];
NSArray *dataArray=[pref1 objectForKey:@"parseData"];

答案 2 :(得分:0)

查看苹果自己的SeismicXML示例 - 可用的源代码。