2012-05-07 8 views
1

私のプログラムでNSFileManagerで使用している現在のディレクトリを表示しているNSLog呼び出しがあります。それがコンパイルされたアプリケーションの場所があるようアプリケーションをスタンドアロンで実行すると、なぜ "現在のディレクトリ"がルート( "/")として表示されますか?

/Users/gsteiner/Desktop/Program Code/Band Manager/build/Debug 

これが期待されている:

Xcodeで自分のアプリケーションを実行している、私の「カレントディレクトリは」として示されています。私は、ファインダーに移動し、ダブル上記のパスに配置されてコンパイルされたアプリケーションを、クリックする場合は、現在のディレクトリが表示されます。

/ 

や、ルートディレクトリ。

「現在のディレクトリ」はアプリケーションが格納されているディレクトリだとは思っていましたが、明らかにそうではありません。

これはなぜ私に教えてもらえますか?それは何らかのエラーのタイプか、それがアプリケーションの起動時のものであるかどうかです。もしそうなら、コンパイルされたアプリケーションが置かれているディレクトリを見つける最良の方法は何でしょうか?

ありがとうございます!

答えて

3

iOSのセキュリティメカニズムとアプリケーションサンドボックスの1つは、各アプリケーションの作業ディレクトリをルートとして設定することです。このようにして、アプリケーションはアプリケーションのディレクトリ/リソースにアクセスすることはできません(もちろん、システムツールにはアクセスできません)。

さらに詳しい情報をご希望の場合は、this documentをご覧ください。

+0

ありがとうございました。それを疑い始めた。私はディレクトリを見つけるために使用できた別のスレッドを見つけました。アプリケーションバンドルのパスを取得した後、最後のコンポーネントを削除して、アプリケーションディレクトリへのパスを残しました。ありがとう! –

関連する問題