11
votes

Téléchargement d'un fichier d'URL et d'enregistrement des ressources sur iPhone

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 nsurlconnection , mais pas Capable de sauvegarder le fichier.

Voici l'exemple de code que j'essaie: xxx


2 commentaires

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"


4 Réponses :


5
votes

Qu'est-ce que la FileData? Comment est-il défini et initialisé?

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


5 commentaires

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.



4
votes

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"];


2 commentaires

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 ~



4
votes

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];


1 commentaires

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



0
votes

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];
}


0 commentaires