首页 > 解决方案 > 如何将 Objective-C 对象传递给 Kotlin Native 框架?

问题描述

特别是,我需要压缩一个文件目录,并将其转换为单个文件。

// put all the log files in zipDirectory into a zip file named toFile
actual fun zip(zipDirectory: String, toFile: String)

我并不担心这个特性,因为我曾轻率地假设我可以将一个objective-c 对象传递给这个对象的构造函数,并用它来运行一些cocoapods 代码……我错了!

所以现在我正试图找出完成这项任务的最佳方法。会喜欢一些想法!

标签: kotlin-multiplatform

解决方案


你有两个选择:

  1. 使用 cocoapods 插件并将 cocoapod 导入您的 KMM 模块,这样您就可以在 iosMain 的实际乐趣中使用它,而无需向构造函数传递任何内容。在这里查看
  • 优点:代码少得多
  • 缺点:添加到 KMM 的每个 pod 都会显着增加构建时间,并且只要 cocoapods 构建缓存被破坏(KT-43796)我发现它无法使用。
  1. 为“拉链”创建一个接口/抽象类,创建接受它的构造函数,在 iOS 端实现它的实例并传递给构造函数。

推荐阅读