0

私はこのコードを持っています:

NSString *logsPath = [dataDirectoryPath stringByAppendingPathComponent:@"Logs"];

どちらが返されますか:

/var/mobile/Applications/AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA/Documents/Mobile Documents/Data/Logs

ただし、これを行う:

NSURL *logsURL = [NSURL URLWithString:logsPath];

nil の値を返します。

これがなぜなのかについてのアイデアはありますか?

4

3 に答える 3

7

+fileURLWithPath:代わりに使用してみてください。

+URLWithString:はプロトコル (http://、https://、file:// など) を想定しているため、URL を作成できません。

一方、+fileURLWithPath:生のパスを取得し、指定したパスに file:// プロトコルを自動的に追加します。

于 2012-11-30T00:22:01.417 に答える
0

[NSURL urlWithString:logsPath]URLがhttps://またはhttp://で始まることを期待しています。 [dataDirectoryPath stringByAppendingPathComponent:@"Logs"];URLではなくパスを返します。これを修正するには、を使用します[NSURL fileURLWithPath:logsPath]。これにより、URLの先頭にfile://が追加され、機能するようになります。完全なコードは次のようになります。

NSString *logsPath = [dataDirectoryPath stringByAppendingPathComponent:@"Logs"];
NSURL *logsURL = [NSURL fileURLWithPath:logsPath];

頑張ってください!

于 2012-11-30T07:09:09.653 に答える