我是开发 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 ];
答案 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 Xcode和 NSXMLParser example
它能解决你的问题吗?
如果没有,请提供更多信息,我将编辑我的答案。