2016-11-28 4 views
-2
@IBAction func iCloudPlayer(_ sender: Any) { 
     var documentPicker = UIDocumentPickerViewController(documentTypes: ["public.txt"], in: UIDocumentPickerMode.import) 
     documentPicker.delegate = self 
     documentPicker.modalPresentationStyle = UIModalPresentationStyle.fullScreen 
     self.present(documentPicker, animated: true, completion: nil) 
    } 

    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL){ 
     if(controller.documentPickerMode == UIDocumentPickerMode.import){ 
      let content = openFile(path: url.path, UTF8: String.Encoding.utf8) 
      titlePlayerContent.text = content 
     } 
    } 
    func openFile(path:String, UTF8:String.Encoding = String.Encoding.utf8) -> String?{ 
     var error: NSError? 
     return FileManager().fileExists(atPath: path) ? String(contentsOfFile: path, encoding: UTF8, error: &error)! : nil 

    } 

//Arguments labels '(contentsOfFile;,encoding;, erro:)' do not match any available overloads, error on ? String(contentsOfFile: path, encoding: UTF8, error: &error)! : nilUIDocumentPickerViewController загрузить текстовый файл из ICloud

какие-либо предложения, ребята? как я могу загрузить из iCloud, уроки, не работающие над Swift 3!

+0

Вы смотрели на документацию Swift 3 для 'Строка 'и его' init' методы? – rmaddy

+0

И ваша проблема не имеет ничего общего с 'UIDocumentPickerViewController' или iCloud. – rmaddy

ответ

1

Заменить функцию тела openFile

func openFile(path:String, UTF8:String.Encoding = String.Encoding.utf8) -> String?{ 
     var error: NSError? 
     return FileManager().fileExists(atPath: path) ? String(contentsOfFile: path, encoding: UTF8, error: &error)! : nil 

    } 

С

func openFile(path:String, UTF8:String.Encoding = String.Encoding.utf8) -> String?{ 
     if FileManager().fileExists(atPath: path) { 
      do { 
       let string = try String(contentsOfFile: path, encoding: .utf8) 
       return string 
      }catch let error as NSError{ 

       //Handle your error/exception here. I just returned a error as a string. You can return nil or something in this case too. 
       return error.localizedDescription 
      } 
     } else { 
      return nil 
     } 
    } 

как за новые изменения в Swift 3.x

+0

Спасибо, его работы! хороший трещина –

+0

@ArkadijsArchieMakarenko Если это сработает, добро пожаловать в тик! –

Смежные вопросы