3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Documentsのパス取得(勘違いしてた)

Posted at

ハマったので、アプリをswift化する時に同じ失敗をしない為のメモ。
共通化してるので同じ失敗はないと思うけど、念の為と、他に困っている人がいたら助けになればということで。

swiftで昔は下記で取得できていたので、

NSHomeDirectory().stringByAppendingPathComponent("Documents")

下記でも同じように取得できると思っていたけど挙動が違がってた。
ちなみに、swift2.0では上のメソッドは削除されているようです。
エラーになりました。

NSHomeDirectory().stringByAppendingString("Documents")

で、上のstringByAppendingStringを実行した時のログ。
何故か、Documentsの前にスラッシュが入っていない状態。

/var/mobile/Containers/Data/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXDocuments/

Stringできちんとスラッシュ付きで指定してやると

NSHomeDirectory().stringByAppendingString("/Documents")
/var/mobile/Containers/Data/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Documents

マニュアル読まずにやったからハマってしまった。。。
同じ状況でハマった方いらっしゃれば、参考までに。

因みに、下記でも取得可能でした。

NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String

どっちが良いのかはわかりません。
個人的にはstringByAppendingStringを使っています。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?