我想從服務器複製xml文件以將它保存到本地,因爲如果我將一次又一次地向服務器發送請求,則需要時間,所以我想在應用程序啓動時將xml複製到本地資源,然後解析當地的xml,將XML文件從服務器複製到iphone?
我該怎麼辦?
我想從服務器複製xml文件以將它保存到本地,因爲如果我將一次又一次地向服務器發送請求,則需要時間,所以我想在應用程序啓動時將xml複製到本地資源,然後解析當地的xml,將XML文件從服務器複製到iphone?
我該怎麼辦?
首先你需要下載的文件:
NSURL *url = [NSURL URLWithString:FILEURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection connectionWithRequest:request delegate:self];
然後添加在.h文件:
NSMutableData *receivedData;
,並在M檔:
-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
if (receivedData)
{
[receivedData appendData:data];
}
else
{
receivedData = [[NSMutableData alloc] initWithData:data];
}
}
-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
//saving your data in the local
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fullName = [NSString stringWithFormat:@"xmlfile.xml"];
NSString *fullFilePath = [NSString stringWithFormat:@"%@/%@",docDir,fullName];
[receivedData writeToFile:fullFilePath atomically:YES];
}
編輯: 從本地獲取文件 -
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fullName = [NSString stringWithFormat:@"xmlfile.xml"];
NSString *fullFilePath = [NSString stringWithFormat:@"%@/%@",docDir,fullName];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
現在你可以在解析NSData的時候,網站上有很多例子。
你是爲WebKit還是Cocoa應用編碼? – Alex
Cocoa app @Alex –
爲什麼你需要複製XML文件?它暗示它或者不會改變(所以你只是將它捆綁在應用程序中),或者它不會像你輪詢服務器那樣頻繁改變(所以輪詢更少)。 – Alex