28 votes

Rapport de l'application sur l'utilisation et le stockage imprécis

L'une de mes applications indique très occasionnellement que son stockage (via Paramètres -> Général -> Utilisation -> Stockage) est de 4 Go alors qu'en réalité, la taille totale de tous les fichiers du bac à sable de l'application (Documents, Bibliothèque, tmp) est en moyenne de 10 Mo environ.

Je suis un peu à bout de nerfs et je me demande si quelqu'un a déjà vécu une telle expérience. J'ai l'impression qu'il s'agit de quelque chose lié à UIDocument, mais je n'en suis pas certain. Il me semble qu'il y a trop peu d'éléments pour déposer un radar.

Dans certains cas, l'application obligera le système à présenter une boîte de dialogue avertissant l'utilisateur que le système est à court de stockage. Lorsque cela se produit, il semble que le système réconcilie la différence entre l'espace de stockage qu'il pense que l'application utilise et la réalité, et les chiffres de stockage redescendent alors à environ 10 Mo.

C'est vraiment bizarre.

Toute idée de ce que je pourrais examiner serait appréciée.

L'implémentation de contentsForType:error :

- (id) contentsForType: (NSString *) inTypeName
    error: (NSError **) outError
{
    NSFileWrapper       *newWrapper, *audioFileWrapper;
    NSString            *audioFilename;
    NSURL               *newAudioWrapperURL;

    newWrapper = [[[NSFileWrapper alloc] initDirectoryWithFileWrappers: nil] autorelease];

    // add updated info
    [newWrapper addRegularFileWithContents: [NSKeyedArchiver archivedDataWithRootObject: self.testInfo] preferredFilename: QSDocumentInfoKey];

    // scan audio files and clean up where needed
    for (NSDictionary *wordInfo in self.wordInfoList) {
        if ((audioFilename = [wordInfo objectForKey: QSInfoAudioKey]) != nil) {
            newAudioWrapperURL = [self.fileURL URLByAppendingPathComponent: audioFilename];
            if ([[NSFileManager defaultManager] fileExistsAtPath: [newAudioWrapperURL path]]) {
                audioFileWrapper = [[[NSFileWrapper alloc] initWithURL: newAudioWrapperURL options: 0 error: nil] autorelease];
                [newWrapper addFileWrapper: audioFileWrapper];
            }
        }
    }

    self.fileWrapper = newWrapper;

    return self.fileWrapper;
}

1voto

Bot Points 7046

J'ai vu cela avec le SDK de TestFlight. Supprimer l'utilisation de TestFlight devrait résoudre ce problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X