【问题标题】:Export file from iOS app in swift快速从 iOS 应用程序导出文件
【发布时间】:2014-11-21 12:37:24
【问题描述】:

总的来说,我对 Swift 和 iOS 开发还很陌生。我的应用程序有一个可以很容易地表示为逗号分隔值 (csv) 的模型,因此我自然希望用户能够将数据导出为 csv 文件并在另一个应用程序中打开该文件。由于我在 Swift 中没有找到任何示例,所以我自己尝试了一下:

func ExportToCSV(delegate: UIDocumentInteractionControllerDelegate){
    let fileName = NSTemporaryDirectory().stringByAppendingPathComponent("myFile.csv")
    let url: NSURL! = NSURL(fileURLWithPath: fileName)

    var data  = "Date,Time,Count\n2014-11-21,14.00,42"

    data.writeToURL(url, atomically: true, encoding: NSUTF8StringEncoding, error: nil)
    if url != nil {
        let docController = UIDocumentInteractionController(URL: url)
        docController.UTI = "public.comma-separated-values-text"
        docController.delegate = delegate
        docController.presentPreviewAnimated(true)
    }
}

(delegate参数是调用函数的视图,如MyClass.ExportToCSV(self))

这很有效,我看到以下观点:

但是,在模拟器中我收到以下警告:

Unbalanced calls to begin/end appearance transitions for <QLRemotePreviewContentController: 0x7fcd720da800>.

还有

Unknown activity items supplied: ("<QLPrintPageRenderer: 0x7fcd73861ee0>","<UIPrintInfo: 0x7fcd714b9030>")

当我点击动作按钮时,过一会儿

Communications error: <OS_xpc_error: <error: 0x10e032b10> { 
    count = 1, contents = "XPCErrorDescription" 
    => <string: 0x10e032f18> { length = 22, contents = "Connection interrupted" }
}>

当我点击 Mail 时会发生崩溃并出现以下错误:

viewServiceDidTerminateWithError: Error Domain=_UIViewServiceInterfaceErrorDomain 
    Code=3 "The operation couldn’t be completed. (_UIViewServiceInterfaceErrorDomain error 3.)" 
    UserInfo=0x7fcd71631460 {Message=Service Connection Interrupted}
<MFMailComposeRemoteViewController: 0x7fcd73864aa0> timed out waiting for fence 
    barrier from com.apple.MailCompositionService

虽然在实际设备上一切都按计划进行,但如此多的错误让我有点不知所措。有没有更好的解决方案?

【问题讨论】:

  • 我现在也有同样的问题。在此期间您找到解决方案了吗?
  • @JannikArndt 我正在测试您的功能,但我收到消息UIDocumentInteractionController delegate must implement documentInteractionControllerViewControllerForPreview: to allow preview 我是 swift 2 的新手,我如何从代表那里实现?
  • @JannikArndt 您是否设法导出/通过电子邮件发送您的 csv 文件?

标签: ios file csv swift export


【解决方案1】:

这可能是由于邮件或打印应用程序访问对象时已经释放了对象。尝试将 docController 和 url 变量声明为类属性,这样只要视图控制器存在,它们就会保持活动状态。

【讨论】:

  • 不幸的是,这会导致完全相同的错误。还有:我真的需要关心 Swift 中的分配吗?
猜你喜欢
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-13
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多