2017-08-27 14 views
5

私のアプリは、PDFファイルを作成し、私は迅速な3を使用してプログラムのiCloudドライブにそのPDF文書を保存したいです。iCloudドライブにpdf文書をプログラムで保存する方法

サンプルでは、​​テキストファイルを使用してiCloudドライブに保存しました。

これは私のコードです:

func copyDocumentsToiCloudDrive() { 
    var error: NSError? 
    let iCloudDocumentsURL = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("myCloudTest") 

    do{ 
     //is iCloud working? 
     if iCloudDocumentsURL != nil { 
      //Create the Directory if it doesn't exist 
      if (!FileManager.default.fileExists(atPath: iCloudDocumentsURL!.path, isDirectory: nil)) { 
       //This gets skipped after initial run saying directory exists, but still don't see it on iCloud 
       try FileManager.default.createDirectory(at: iCloudDocumentsURL!, withIntermediateDirectories: true, attributes: nil) 
      } 
     } else { 
      print("iCloud is NOT working!") 
      // return 
     } 

     if error != nil { 
      print("Error creating iCloud DIR") 
     } 

     //Set up directorys 
     let localDocumentsURL = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: .userDomainMask).last! as NSURL 

     //Add txt file to my local folder 
     let myTextString = NSString(string: "HELLO WORLD") 
     let myLocalFile = localDocumentsURL.appendingPathComponent("myTextFile.txt") 
     _ = try myTextString.write(to: myLocalFile!, atomically: true, encoding: String.Encoding.utf8.rawValue) 

     if ((error) != nil){ 
      print("Error saving to local DIR") 
     } 

     //If file exists on iCloud remove it 
     var isDir:ObjCBool = false 
     if (FileManager.default.fileExists(atPath: iCloudDocumentsURL!.path, isDirectory: &isDir)) { 
      try FileManager.default.removeItem(at: iCloudDocumentsURL!) 
     } 

     //copy from my local to iCloud 
     if error == nil { 
      try FileManager.default.copyItem(at: localDocumentsURL as URL, to: iCloudDocumentsURL!) 
     } 
    } 
    catch{ 
     print("Error creating a file") 
    } 

} 

このコードは、エラーなしに取り組んでいます。ただし、保存したファイルをiCloudドライブに表示することはできません。

私はこれをlinkといい、このコードを書いています。

+0

出力があります!!私は同じ問題を抱えていた。フォルダが作成されていますが、ファイルが内部にありません。あなたは私を導くことができますか? –

答えて

0

あなたのコードが意図したとおりに動作すると仮定して、info.plistでアプリケーションのバージョンとビルド番号を更新してみてください。 iCloudの変更を反映させるには、これらの値の変更が必要です。

関連する問題