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 文档似乎被禁用的主要内容,如果未能解决你的问题,请参考以下文章

Swift,如何在单击时从自定义注释中获取信息

iCloud 同步后 UITableView 不会重新加载(Swift 2)

从自定义表格视图单元格类加载时如何调整单元格的高度?

从自定义路径预加载 env 文件

从自定义单元格加载时如何调整单元格表的高度?

Swift - 从自定义单元格和单元格数据传递到另一个控制器