Одно из моих приложений очень иногда сообщает о своем Хранилище (через Настройки -> Общие -> Использование -> Хранилище) как 4 ГБ, когда на самом деле общий размер из всех файлов в песочнице приложения (Документы, Библиотека, tmp) в среднем составляет около 10 МБ или около того.
Я как бы сошел с ума и задаюсь вопросом, сталкивался ли кто-нибудь с чем-либо подобным. У меня есть скрытое подозрение, что это что-то связанное с UIDocument, но не могу быть уверенным. Похоже, что сейчас слишком мало, чтобы продолжить работу с радаром.
В некоторых случаях приложение вынуждает систему отображать диалоговое окно, предупреждающее пользователя о том, что система не работает. заканчивается память. Когда это происходит, кажется, что система согласовывает разницу между хранилищем, которое, по ее мнению, использует приложение, и реальностью. и количество хранилищ затем упадет до 10 МБ или около того.
Это действительно странно.
Любые идеи о вещах, на которые я мог бы взглянуть, были бы оценены.
Реализация contentForType: 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;
}