est-il possible de télécharger un fichier (c'est-à-dire un fichier de base de données SQLite) à partir d'Internet dans votre application iPhone par programme pour une utilisation ultérieure dans l'application?
J'essaie d'utiliser Voici l'exemple de code que j'essaie: p> nsurlconnection code>, mais pas Capable de sauvegarder le fichier. p>
4 Réponses :
Qu'est-ce que la FileData? Comment est-il défini et initialisé?
NSURLConnection *conn = [NSURLConnection connectionWithRequest:req delegate:self];
Oui, il est défini de cette façon dans le fichier d'en-tête.
Je ne le vois pas dans la vue ci-dessus. Où est-il initialisé ??? aileData = [NSMUTABLETTA DATA];
Initialisez la FileData comme je l'ai dit dans ma réponse (dans la vue ViewDidLoad) et cela fonctionnera.
Vous avez besoin: FileData = [[[NSMUTABLETTA ALLOC] Initiplanthlength: 0]; ou filedata = [NSMUTABLETTA DATA]; in - (vide) ViewDidDidLoad.
Sélectionnez ceci comme réponse. Re-posez vos questions concernant la base de données.
Vous devez développer le chemin avec StringByAppendingPathComponent code>
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"bookdb.sql"];
Je veux télécharger la base de données depuis Internet (stocké quelque part sur certains serveurs)
Peu importe, vous avez toujours besoin d'étendre la ~
Essayez ce code dans une méthode et exécutez,
NSURL *url=[NSURL URLWithString:@"http://en.wikipedia.org/wiki"]; NSData *dbFile = [[NSData alloc] initWithContentsOfURL:url]; NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"Documents"]]; NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"Text_file.txt"]; [dbFile writeToFile:filePath atomically:YES];
L'URL au répertoire de documents est meilleure de cette manière-> Nsurl * DocumentsDirectory = [[[[[[[[[[[NSFILEMANGER DEFAUTHMANAGER] URLSFORDIRECTORY: NSDOCumentDirectory Indomains: Nsuserdomainmask] LastObject]; Vous pouvez donc [URL chemin] pour obtenir le chemin
Ceci peut être utile pour vous.
NSString *stringURL = @"http://www.somewhere.com/thefile.png"; NSURL *url = [NSURL URLWithString:stringURL]; NSData *urlData = [NSData dataWithContentsOfURL:url]; if ( urlData ) { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.png"]; [urlData writeToFile:filePath automically:YES]; }
Qu'est-ce qui échoue exactement ici?
Si ([Self.FileData WriteToFile: Options de chemin: Nsatomicwrite Erreur: nil] == No) {NSLog (@ "Erreur WriteToFile"); } Je reçois "Erreur WriteToFile"