2011-11-15 2 views
0

Lorsque je mets à jour iOS 4+ vers iOS 5, je perds toutes les données dans ma propre application. J'ai également mis à niveau vers OSX Lion et Xcode 4. J'ai sauvegardé mon iPhone dans iTunes et j'ai pu obtenir les données en utilisant iPhone Backup Extractor.Perte de données d'application de NSDocumentDirectory dans iOS 5

enregistrer mes données d'application dans un fichier de la manière suivante:

- (NSString *)iouArrayPath 
{ 
    // Standard way of getting file path for iOS 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *dir = [paths objectAtIndex:0]; 
    NSLog(@"Directory: %@", dir); 

    return pathInDocumentDirectory(@"IouTableArray.data"); 
} 

- (void)archieveIou 
{ 
    NSLog(@"archieveIou"); 

    // Get the path to the document directory 
    NSString *iouPath = [self iouArrayPath]; 

    // grab the objects to archieve 
    NSMutableArray *iouTableArray = [iouViewController iouTableArray]; 

    // ARCHIVE DATA 
    NSMutableData *data = [NSMutableData data]; 
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
    [archiver encodeObject:iouTableArray forKey:@"IouTableArray"]; 
    [archiver finishEncoding]; 
    [data writeToFile:iouPath atomically:YES]; 

    if([data writeToFile:iouPath atomically:YES]) { 
     NSLog(@"writeToFile success!"); 
    } 
    else { 
     NSLog(@"writeToFile failed"); 
    } 
    [archiver release]; 
} 

C'est ce que j'ai essayé de comprendre. J'ouvre le projet dans Xcode 4, je copie le fichier .data de la sauvegarde et le colle au /iPhone Simulator/5.0/Applications/Some digit/Documents. Théoriquement, lorsque l'application démarre, elle recherche dans ce dossier et charge le fichier .data s'il existe. Ce ne est pas. Cependant, l'application fonctionnera correctement si je crée des données de test et que je les sauvegarde. Il va remplacer le fichier de sauvegarde avec le même nom de fichier et le charger correctement lorsque je redémarre l'application. Cela me fait me demander s'il y a un changement de NSCoder/archieving entre XCode3/XCode4 ou entre iOS4 et iOS5.

Est-ce que quelqu'un sait ce qui se passe? Une fois que j'ai compris cela, je prévois d'utiliser le fichier de données de sauvegarde et de le copier dans le dossier app/Document actuel. En fait, à y penser, je ne suis pas sûr de savoir comment faire ça non plus. Le dossier/Document de l'application se trouve dans le téléphone. Je vais devoir voir si je peux utiliser iTunes et injecter l'application avec les données. Quoi qu'il en soit, les premières choses d'abord! Comprendre le système

Merci!

Répondre

0

Il s'avère que iOS5 installe une ancienne version de l'application. Étrange mais assurez-vous que tous vos approvisionnements sont équarris.