用于 kml 和文本文件的 UIActivityViewController

UIActivityViewController for a kml and text files

我使用以下代码在 iPhone 应用程序上保存几个文件。一个是带有经度和纬度列表的纯文本文件。第二个文件与 KML 代码相同,以显示具有相同坐标的地标。该代码可以按预期生成两个扩展名为 .txt 的文件。我想做的是生成两个不同的扩展名,.txt 用于纯文本文件,.kml 用于第二个。 .kml 扩展名的原因是能够在 iPhone 上的 Google 地球应用程序中显示这些坐标。任何帮助将不胜感激...

    let activityViewController = UIActivityViewController(activityItems: [kml, locations], applicationActivities: nil)
    present(activityViewController, animated: true, completion: nil)``

两个数组activityViewController分别包含kml和文本代码。

这是我解决问题的方法...我确信这不是最有效的方法,但它确实有效:-)。仍在寻找更有效的方法,因为此方法会生成一个临时文件,增加应用程序的开销...此外,用户必须保存文件两次,一次用于 kml,一次用于文本文件。所以无论如何,希望它能帮助别人。

    let kmlFile = "soofie_loc.kml"
    let tmpDir = FileManager.default.temporaryDirectory
    var fileURL : URL?
    fileURL = tmpDir.appendingPathComponent(kmlFile)
    let data = Data(kml.utf8)
    do {
        try data.write(to: fileURL! , options: .atomic)
    } catch {
        print(error)
    }


    //let activityViewController = UIActivityViewController(activityItems: [kml, locations], applicationActivities: nil)
    if ( !kmlOption ) {
        let activityViewController = UIActivityViewController(activityItems: [locations], applicationActivities: nil)
        present(activityViewController, animated: true, completion: nil)
    }
    else {
        let activityViewController = UIActivityViewController(activityItems: [fileURL!], applicationActivities: nil)
        present(activityViewController, animated: true, completion: nil)
    }