ios - 快速从 iOS 应用导出文件

标签 ios file csv swift export

总的来说,我对 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)参数是调用函数的 View ,如MyClass.ExportToCSV(self))

这主要有效,我看到以下 View :

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

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

还有

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

当我点击action按钮时,然后过了一会儿

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

当我点击邮件时出现崩溃并出现以下错误:

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

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

最佳答案

这可能是因为对象在被邮件或打印应用程序访问时已经被释放。尝试将您的 docControllerurl 变量声明为类属性,这样只要 View Controller 存在,它们就会一直存在。

关于ios - 快速从 iOS 应用导出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061574/

相关文章:

java - 使用缓冲阅读器读取没有换行符的文件

python - 选择从 .txt 到 .csv 的数据列

Postgresql:运行 SQL 查询脚本并导出到 csv

ios - 检查字典中的对象是否为 Int (Swift)

ios - 如何防止自动聚焦在 Collection View 组合布局上

c - 在C中,fwrite()'s "size_t size"和 "size_t n items"混淆

python - 使用 python 将 XLSX 正确转换为 CSV

iphone - 如何仅获取地址簿中具有传真号码的联系人列表?

ios - Instagram/tags/\(hashtag)/media/recent 端点不返回分页?

excel - 更改代码以允许选择多个文件