Приложение сообщает о неточном использовании / хранении - PullRequest
28 голосов
/ 27 января 2012

Одно из моих приложений очень редко сообщает о своем хранилище (через Настройки -> Общие -> Использование -> Хранение) как 4 ГБ, когда на самом деле общий размер всех файлов в песочнице приложения (Документы, Библиотека,TMP) в среднем около 10 МБ или около того.

Я немного сошел с ума и думаю, не сталкивался ли кто-нибудь с подобным.У меня есть подозрение, что это связано с UIDocument, но не уверен.Кажется, что сейчас слишком мало, чтобы подать радар.

В некоторых случаях приложение заставляет систему выводить диалоговое окно, предупреждающее пользователя о том, что в системе недостаточно места для хранения.Когда это происходит, кажется, что система примиряет разницу между хранилищем, которое, по ее мнению, использует приложение, и реальностью, и номера хранилищ затем уменьшаются до 10 МБ или около того.

Это действительно странно.

Буду признателен за любые идеи о том, на что я могу взглянуть.

Реализация 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;
}

1 Ответ

1 голос
/ 20 февраля 2012

Я видел это с TestFlight SDK.Отказ от использования TestFlight должен решить эту проблему.

...