2012-01-24 8 views
0

Je veux prendre la sauvegarde de toutes les données dans la base de données de mon application iphone dans la boîte de dépôt et la restaurer plus tard. Le problème principal est qu'il y a trop de données dans l'application, donc si j'utilise des requêtes sql sqlite3 base de données et le stocker dans le fichier et lire à nouveau les données de ce fichier et l'insérer dans database.can quelqu'un suggère que comment puis-je améliorer cela ou quelle est la meilleure façon de le faire?quelle est la meilleure façon de prendre la sauvegarde des données de la base de données sqlite3 de l'application iphone?

Répondre

2

Je présume que vous voulez dire que vous voulez pouvoir restaurer les données après que l'utilisateur ait en quelque sorte supprimé l'application et l'ait à nouveau installée. Puisque chaque application a son influence dans les limites de son sandbox, la seule option raisonnable serait d'utiliser le serveur. En ce qui concerne simplement répondre à votre question - il n'y a aucun moyen de le faire comme vous l'avez décrit.

+0

nous pouvons stocker les données dans dropbox et récupérer plus tard sans utiliser le serveur? – Bhoomi

+0

Oui, mais il s'agit en fait d'un service Web dont vous avez voulu vous abstenir. Vous êtes contradictoire. – Eugene

+0

et si je veux restaurer les données uniquement lorsque l'application est installée.utilisateur de l'application peut supprimer les données.et plus tard, je veux restaurer les données que l'utilisateur a supprimé de l'application.Il garder l'affaire de côté lorsque l'utilisateur avait désinstallé l'application . – Bhoomi

2

Vous pouvez utiliser iCloud. Accédez à votre gestionnaire d'applications sur Itunes Connect pour générer une clé iCloud. Ainsi, toutes les données seront stockées sur icloud.

+0

Comment pouvons-nous faire cela par iClould, pourriez-vous s'il vous plaît nous donner des liens utiles pour nous. Merci d'avance. – Nico

+0

vous pouvez trouver toutes les informations à ce sujet ici: https://developer.apple.com/icloud/index.php –

0

Vous pouvez utiliser un uuid comme clé pour votre service Web. Donc, si l'utilisation supprimer l'application et quand il réinstalle, vous devez télécharger toutes les données avec l'identifiant de clé.

Par exemple:

uuid = [[UIDevice currentDevice] uniqueGlobalDeviceIdentifier]; 

Avec Class for UUID

Important: Utilisez le mode global, car il permet d'utiliser l'UUID entre les applications.

0

ma solution dropbox-Sync API:

- (IBAction)onTouchDropboxBackup:(id)sender { 

    DBAccount *account = [[DBAccountManager sharedManager] linkedAccount]; 

    if (account) { 

     if (![sharedDelegate filesystem]) { 

      DBFilesystem *filesystem = [[DBFilesystem alloc] initWithAccount:account]; 
      [DBFilesystem setSharedFilesystem:filesystem]; 
      [sharedDelegate setFilesystem:filesystem]; 
      [filesystem release]; 
     } 

     DBPath *destination = [[DBPath root] childPath:kDataDBFileName]; 
     DBError *error = nil; 

     //check presense 
     DBFile *file = [[DBFilesystem sharedFilesystem] openFile:destination 
                 error:&error]; 
     if (error){//not present 

      [[DBFilesystem sharedFilesystem] createFile:destination 
               error:&error]; 

      file = [[DBFilesystem sharedFilesystem] openFile:destination 
                error:&error]; 
     } 

     if (!error) { 

      [file writeContentsOfFile:[DOCUMENTS_DIR stringByAppendingPathComponent: kDataDBFileName] 
          shouldSteal:NO 
          error:&error]; 

      [file update:&error]; 
      [file close]; 
     } 

    }else 
     [[DBAccountManager sharedManager] linkFromController:self]; 
} 
Questions connexes