ハマったので、アプリを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を使っています。