Downloading a file from url and saving to resources on iPhone

cocoa-touch, ios, nsurlconnection

Solution

What is fileData? How is it defined and initialized?

  fileData = [NSMutableData data];

should be somewhere after:

NSURLConnection *conn = [NSURLConnection connectionWithRequest:req delegate:self];

You have to initialize fileData and retain it per memory management rules.

Try it with my answer. It Works!

Problem

Is it possible to download a file (i.e. an sqlite database file) from the Internet into your iPhone application programmatically for later use within the application? I am trying using `NSURLConnection`, but not able to save the file. Here is the example code I am trying: ``` - (void)viewDidLoad { [super viewDidLoad]; NSString *file = [NSString stringWithFormat:@"http://en.wikipedia.org/wiki/Text_file"]; NSURL *fileURL = [NSURL URLWithString:file]; NSURLRequest *req = [NSURLRequest requestWithURL:fileURL]; NSURLConnection *conn = [NSURLConnection connectionWithRequest:req delegate:self]; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [self.fileData setLength:0]; self.totalFileSize = [NSNumber numberWithLongLong:[response expectedContentLength]]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [self.fileData appendData:data]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSArray *dirArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSLog(@"%@", [dirArray objectAtIndex:0]); NSString *path = [NSString stringWithFormat:@"%@/blah.text", [dirArray objectAtIndex:0]]; if ([self.fileData writeToFile:path options:NSAtomicWrite error:nil] == NO) { NSLog(@"writeToFile error"); } else { NSLog(@"Written!"); } } ```

Original source