web-dev-qa-db-ja.com

URLスキームが渡されなかったため、CFURLCopyResourcePropertyForKeyが失敗しました

ファイルをiCloudに保存するプログラムがあり、これはiOS7でうまく機能しましたが、今ではiOS8でこのエラーが発生し、修正方法の答えが見つからないようです。他の誰かがこの問題を抱えていましたか?どんなアイデアでも大歓迎です。

エラー: CFURLCopyResourcePropertyForKeyは、スキームのないこのURLが渡されたために失敗しました:/var/mobile/Containers/Data/Application/ASFHDDE3-B1BB-41D7-A47C-DCC328362W21/Documents/mypictostore.png

コード行エラー: [fileManager setUbiquitous:YES itemAtURL:backupUrl destinationURL:[[ubiq URLByAppendingPathComponent:@ "Documents" isDirectory:true] URLByAppendingPathComponent:backupName] error:&theError];

RLS: destinationURL:file:/// private/var/mobile/Library/Mobile%20Documents/ABC23455〜MY-Program/backupUrl:/ var/mobile/Containers/Data/Application/ASDFGEEW-B1BB —6FR6-A47C-DCCF21876D36/Documents/mypic.png

ありがとう、ジョン

31
Jon

私にとって、この問題は以下を追加することで修正されました

file://

このようなファイルパスアドレスの直前:

var filePath = "file://\(fileURLpath)"
67
Jorge Irún

または、NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("mypictostore", ofType: "png")!)を使用する代わりにNSURL(string: NSBundle.mainBundle().pathForResource("mypictostore", ofType: "png")!)を使用できます

17
leonard

Objective-cの回答については、次のリンクを参照してください。 NSDocumentDirectoryでデータバックアップを無効にするとCFURLSetResourcePropertyForKeyが失敗しました

古いSwiftバージョンの回答:

var str:String = "/var/mobile/Containers/Data/Application/3039975A-5E05-4A4C-8000-55C681A7C35F/Documents/index.html"

var url:URL = URL.init(fileURLWithPath: str)

Swift 4回答:

var str:String = "/var/mobile/Containers/Data/Application/3039975A-5E05-4A4C-8000-55C681A7C35F/Documents/index.html"

var url:URL = URL(string: str)!
9
Renato Ioshida

見て、私はこれを見つける、urlThe location to write the data into。システムにfile path

  • var filePath = "file://(fileURLpath)"
  • var url:URL = URL.init(fileURLWithPath:fileURLpath)

データ

5
huangqibiao