아이 클라우드 스위프트에 파일에서 데이터를 얻을 수 있지만 문제가 방법 :내가 아이 클라우드에서 파일을 가져오고 B64 형식 문자열로 변환하는 응용 프로그램을 만드는거야
난 정말 모르겠어요 이 파일에서 데이터를 가져 오는 방법. 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