如何在iOS应用程序中下载,更新和读取XML文件?

时间:2014-02-21 18:04:40

标签: ios objective-c xml

我是开发 iOS 应用的新手,我希望我的应用能够下载并读取每次打开应用时都会更新的XML文件。

这是我到目前为止所做的:

NSURL * url = @"http://192.168.100.161/UploadWhiteB/wh.txt";
NSData * data = [NSData dataWithContentsOfURL:url];

if (data != nil) {
NSLog(@"\nis not nil");
NSString *readdata = [[NSString alloc] initWithContentsOfURL:(NSData *)data ];

1 个答案:

答案 0 :(得分:0)

也许您可以在AppDelegate didFinishLaunchingWithOptions方法中使用此代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *localPath = [path objectAtIndex:0]; //The apps document directory

    NSString* fileURL = @"http://192.168.100.161/UploadWhiteB/wh.txt";
    NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];

    if (!(data==nil)) {
        [data writeToFile:[localPath stringByAppendingPathComponent:@"wh.txt"] atomically:YES];
        NSLog(@"Did download file: wh.txt");
    }
}

然后,您可以在另一个类中使用此代码来获取数据:

-(NSString *) getDocumentDirectory {
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [path objectAtIndex:0]; //The apps document directory
}

NSData *xmlData = [NSData dataWithContentsOfFile:[[self getDocumentDirectory] stringByAppendingPathComponent:@"wh.txt"]];
if(!(xmlData==nil)) {
    //Do your stuff
}

每次应用启动时都会运行didFinishLaunchingWithOptions方法,并将文件 wh.txt 从服务器下载(并替换)到设备上的文件 wh.txt (在您的应用文档文件夹中)。

然后,如果您不想阅读该文件,可以使用NSXMLParser。参见:

How to Parse XML Files in XcodeNSXMLParser example

它能解决你的问题吗?

如果没有,请提供更多信息,我将编辑我的答案。