私はこれに夢中になります。私はそこにブレークポイントを置いてチェックした例NSFileManager fileExistsAtPathは、セグの後に2つの異なるクラスの同じパスに対してtrueとfalseを返します(そしてファイルが存在する)
"/var/mobile/Media/DCIM/100APPLE/IMG_0045.JPG"
ために、アルバム内の画像を一覧表示し、それらのそれぞれについて、NSURLを取得するクラスを持って、ファイルには、すべてが良いですが存在します。
これらのURLを保存します。ユーザーアクションでは、別のクラスを呼び出してイメージの1つを表示し、そのURLを新しいView Controllerに属性として渡します。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "picDetailsSegue" {
if let picReviewController = segue.destinationViewController as? PicReviewViewController
{
if(clickedPicture != nil)
{
picReviewController.existingFilePath = clickedPicture.urlPath.path!
[initialize other stuff...]
}
}
}
}
しかし一度そこに、
NSFileManager.defaultManager().fileExistsAtPath(thePath!)
はただfalseを返す続けます。 NSURLオブジェクトの "path"属性と "relativePath"属性を使用して、パスを文字列として渡すような、たくさんの調整を試みました。オンラインで見つけられるすべての提案、何も動作しません。ファイルが見つからず、次は常にnilを返します。
let image = UIImage(contentsOfFile: theURL.path!)
コンソール出力:
私はURLにアクセスし、それを格納初めて:
(lldb) print NSFileManager.defaultManager().fileExistsAtPath(url!.path!)
(Bool) $R1 = true
(lldb) print url!.path
(String?) $R3 = "/var/mobile/Media/DCIM/100APPLE/IMG_0045.JPG"
私は再び
(lldb) print NSFileManager.defaultManager().fileExistsAtPath(clickedPicture.path!.path!)
(Bool) $R4 = false
(lldb) print (clickedPicture.path!.path!)
(String) $R5 = "/var/mobile/Media/DCIM/100APPLE/IMG_0045.JPG"
0をそれにアクセスしよう
これを解消しましたか?私は同じ問題を抱えている。 – Raymond26