あなたの質問は、スペースを含む文字列から URL を作成することではなく、スペースを含むパス文字列からURLを作成することに関するものです。
パスには、 を使用しないでくださいURLWithString
。Mac OS X と iOS には、ファイル パスの NSURL を構築するための便利な関数が含まれており、これが自動的に処理されます。代わりにそれらのいずれかを使用してください。
Apple のドキュメントに[NSURL fileURLWithPath: path]
は次のように書かれています。
このメソッドは、パスがスラッシュで終わる場合、パスがディレクトリであると想定します。パスがスラッシュで終わっていない場合、メソッドはファイル システムを調べて、パスがファイルかディレクトリかを判断します。pathがファイル システムに存在し、それがディレクトリである場合、メソッドは末尾にスラッシュを追加します。pathがファイル システムに存在しない場合、メソッドはそれがファイルを表していると想定し、末尾のスラッシュを追加しません。
別の方法として、 を使用することを検討してください。これにより、返されたオブジェクトがファイルまたはディレクトリを表すfileURLWithPath:isDirectory:
かどうかを明示的に指定できます。NSURL
また、NSSearchPathForDirectoriesInDomains
Application Support ディレクトリを見つけるために を使用する必要があります。
これをすべてまとめると、次のようになります。
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *applicationSupportDirectory = [paths objectAtIndex:0];
NSURL *url = [NSURL fileURLWithPath: applicationSupportDirectory isDirectory: YES];
ソース: