1

ここで本当に明白な何かが欠けている可能性がありますが、次のとおりです。

NSError *error;
NSURL *cachesDirectory = [[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask][0];
NSLog(@"Caches directory: %@", cachesDirectory);
NSURL *tmpDirectory = [[NSFileManager defaultManager] URLForDirectory:NSItemReplacementDirectory inDomain:NSUserDomainMask appropriateForURL:cachesDirectory create:YES error:&error];
NSLog(@"TMP directory: %@", tmpDirectory);

// Result:
// 2013-10-28 13:37:47.972 MyApp[220:907] Caches directory: file://localhost/var/mobile/Applications/029A4948-A67A-48E5-A35F-1BBCC744E9B0/Library/Caches/
// 2013-10-28 13:37:47.976 MyApp[220:907] TMP directory: file://localhost/var/mobile/Applications/029A4948-A67A-48E5-A35F-1BBCC744E9B0/Library/(A%20Document%20Being%20Saved%20By%20MyApp%2011)/

キャッシュ ディレクトリ内に一時ディレクトリが作成されることを期待していました。ドキュメントから:

この方法を使用して、自動保存ファイルなどを保存するための新しい一時ディレクトリを作成することもできます。これを行うには、ディレクトリ パラメータに NSItemReplacementDirectory を指定し、ドメイン パラメータに NSUserDomainMask を指定し、url パラメータに有効な親ディレクトリを指定します。目的のディレクトリを検索 (または作成) した後、このメソッドはそのディレクトリの URL を返します。

また、 の定義url:

ドキュメントの自動保存やその他の用途のために一意の一時ディレクトリを作成するディレクトリの名前。directory パラメーターに値 NSItemReplacementDirectory が含まれていて、domain パラメーターに値 NSUserDomainMask が含まれていない限り、このパラメーターは無視されます。一時ディレクトリを作成する場合、shouldCreate パラメータは無視され、ディレクトリは常に作成されます。

の中に一時ディレクトリが作成されていることがわかりますLibrary。私は何を間違っていますか?

4

1 に答える 1

0

あなたは何も悪いことをしていないように見えます。私はちょうどそれをテストし、それがあなたが説明した方法で動作することを発見しました. 動作がドキュメントに準拠していないか、ドキュメントが正しくありません。また、人々がまったく同じ問題について話し合っている次のリンクもたまたま見つけました。

http://lists.apple.com/archives/cocoa-dev/2012/Feb/msg00197.html

于 2013-10-28T21:18:22.480 に答える