私のアプリの1つは、実際には、アプリのサンドボックス(ドキュメント、ライブラリ、tmp)内のすべてのファイルの合計サイズが平均である場合に、そのストレージ([設定]->[一般]->[使用法]->[ストレージ]を介して)を4GBとして報告することがあります。約10MB程度。
私はちょっと気が利いていて、誰かがこのようなことを経験したことがあるかどうか疑問に思っています。UIDocumentに関連するものだとこっそり疑っていますが、確信が持てません。レーダーを提出するために今続けるには少なすぎるようです。
場合によっては、アプリはシステムにストレージが不足していることをユーザーに警告するダイアログを表示するように強制します。これが発生すると、システムはアプリが使用していると思われるストレージと現実の違いを調整し、ストレージ数は10MB程度に減少するようです。
それは本当に奇妙です。
私が見るかもしれないものについてのどんな考えでもありがたいです。
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;
}