私はiCloud上からファイルを取得し、B64のフォーマット文字列に変換アプリを作成していますが、私は問題を抱えている:のiCloudスウィフト上のファイルからデータを取得する方法
私は本当に知りませんこのファイルからデータを取得する方法。私はそれがICloudからインポートされたファイルからPathを簡単に開くことができると思ったが、ルートにアクセスしようとするとnilを返す。
私のコード例は、私が一時的なルートを持っています:((file:///.../Aplication/xxx-xxx-xxx-xx/temp/com.domain.AppName/Carolina) .CER):。
extension KeyViewController: UIDocumentMenuDelegate {
func documentMenu(documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {
documentPicker.delegate = self
print ("documentMenu")
self.presentViewController(documentPicker, animated: true, completion: nil)
}
}
extension KeyViewController: UIDocumentPickerDelegate {
func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL) {
print("url string")
print(String(url))
//prints file:///.../Aplication/xxx-xxx-xxx-xx/temp/com.domain.AppName/Carolina.cer
if controller.documentPickerMode == UIDocumentPickerMode.Import {
if (NSFileManager.defaultManager().fileExistsAtPath(String(url))){
print("exists")
}
else{
print("not exists")
}
dispatch_async(dispatch_get_main_queue()) {
if let fileName = url.lastPathComponent {
var fileNameArray = fileName.componentsSeparatedByString(".")
print ("fileNameArray")
print (fileNameArray)
if ((fileNameArray[1] != "cer") && (fileNameArray[1] != "key")) {
self.alertMessage = "Not a valid selection, choose .cer or .key Files"
self.showAlertMessage(self.alertMessage)
}
else{
//saving the name
if (fileNameArray[1]=="cer")
{
NSUserDefaults.standardUserDefaults().setObject(fileName, forKey: "temporalCerFile")
}
else{
//saving the name
NSUserDefaults.standardUserDefaults().setObject(fileName, forKey: "temporalKeyFile")
}
NSUserDefaults.standardUserDefaults().synchronize()
}
}
}
}
}
}
どのように私はあなたがfileExistsAtPath:
に不正な値を渡しているので、あなたのコードが動作していない
指定されたURLでファイルにアクセスしようとしたところはどこですか?投稿したコードは、URLを印刷してURLのファイル名を分割しますが、実際にはURLのファイルにアクセスしようとしません。 – rmaddy
編集済み、申し訳ありません。その部分を貼り付けるのを忘れました。ありがとう –
投稿した更新されたコードはまだファイルにアクセスしようとしません。あなたが今までに持っているのは、それが存在するかどうかを確認することだけです。そしてあなたが投稿したコードは 'NSURL'を' String'を期待するメソッドに渡そうとしているので、コンパイルされません。 – rmaddy