swift:从自定义应用程序加载时,iCloud 文档似乎被禁用
Posted
技术标签:
【中文标题】swift:从自定义应用程序加载时,iCloud 文档似乎被禁用【英文标题】:swift: iClouds Documents seems to be disabled when loaded from custom application 【发布时间】:2017-01-17 11:09:40 【问题描述】:我正在尝试在我的自定义应用程序中从 iCloud 上传 PDF 文件。但是当我从我的应用程序移动到 iCloud 时,无法选择文档,看起来好像它们被禁用了。大多数解释都在 Obj-C 中,所以我无法完全理解。
这里有什么问题?这是我在 swift2 中的代码:
import UIKit
import MobileCoreServices
class ViewController: UIViewController, UIDocumentPickerDelegate, UITextViewDelegate
@IBOutlet weak var emailButton: UIButton!
@IBOutlet weak var UITextField: UITextView!
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
@IBAction func handleImportPickerPressed(sender: AnyObject)
let documentPicker = UIDocumentPickerViewController(documentTypes: [kUTTypeText as NSString as String], inMode: .Import)
documentPicker.delegate = self
presentViewController(documentPicker, animated: true, completion: nil)
func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL)
print(url)
【问题讨论】:
我没找到你 :) 不要施放两次!您将 kUTTypeText 转换为 NSString,然后再次将其转换为 String。这是没有意义的。只需一劳永逸地将其直接转换为所需的类型。 好的,我已经完成了 [kUTTypeText as String]。但还是同样的问题 好吧,我不是在谈论解决您的问题。我在谈论代码的这个特定部分......我的信息是“记住以后不要施放两次。” 是的,我会记住 :) 【参考方案1】:它们被禁用意味着您在 iCloud 中拥有的文档类型在您选择时不匹配。将文档类型用作:
@IBAction func handleImportPickerPressed(sender: AnyObject)
let documentPicker = UIDocumentPickerViewController(documentTypes:["public.data", "public.text"],inMode: UIDocumentPickerMode.Import)
documentPicker.delegate = self
documentPicker.modalPresentationStyle = UIModalPresentationStyle.FormSheet
presentViewController(documentPicker, animated: true, completion: nil)
还有许多其他文档类型。它们被禁用意味着它们无法被您传递的 documentTypes 读取。
【讨论】:
以上是关于swift:从自定义应用程序加载时,iCloud 文档似乎被禁用的主要内容,如果未能解决你的问题,请参考以下文章