【问题标题】:Read/Write file in kotlin native - IOS side在 kotlin native 中读/写文件 - IOS 端
【发布时间】:2020-07-19 13:01:01
【问题描述】:

我想在 **IOS 端**创建文件并使用 Kotlin/Native 写入。

我有这个代码:

共同主要:

expect class ReadWriteFile

在 androidMain 中:

actual class ReadWriteFile {
    fun read(path : String, filename: String) : Boolean {
        val file = File("$path/$filename")
        return if(file.exists()) {
            file.forEachLine {
                // do something
            }
            true
        } else {
            false
        }
    }

    fun save(path : String, filename : String, nbLine : Int) {
        val file = File("$path/$filename")
        val w = file.writer()
        for(it in 1..nbLine) {
            w.write("write something\n")
        }
        w.close()
    }
}

在 iosMain 中:

actual class ReadWriteFile {
    fun read(path : String, filename: String) : Boolean {
        ???????????
    }

    fun save(path : String, filename : String, nbLine : Int) {
        ???????????
    }
}

【问题讨论】:

    标签: android ios file kotlin kotlin-multiplatform


    【解决方案1】:

    试试这样的:

    import platform.Foundation.*
    
    class ReadWriteFile {
        fun read(path : String, filename: String) : Boolean {
            val string = NSString.stringWithContentsOfFile(path, NSUTF8StringEncoding, null) ?: return false
            string.lines().forEach {
                println(it)
            }
            return true
        }
    
        fun save(path : String, filename : String, nbLine : Int) {
            val result = (1..nbLine).map {
                "string $it"
            }
            (result as NSString).writeToFile(path, true, NSUTF8StringEncoding, null)
        }
    }
    

    一般来说,如果您需要找到一个本地解决方案,搜索 Obj-C 解决方案更容易 - 因为 kotlin 被转换为它,而不是 Swift,然后 import platform.Foundation.* 或 import platform.UIKit.* 取决于使用的类并采用到科特林。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 2022-12-05
      • 1970-01-01
      • 2020-07-19
      • 2018-04-22
      • 1970-01-01
      相关资源
      最近更新 更多