问题描述
我有一个 Kotlin 多平台项目,我正在从 Kotlin 源代码生成一个 iOS 框架。
interface Presenter {
val validValues: List<Int>
...
}
但是,在生成的 iOS 框架的 .h 文件中,这是在末尾带有下划线“_”(下划线):
@property (readonly) NSArray<XYZInt *> *validValues_ __attribute__((swift_name("validValues_")));
解决方法
原来在我的源代码中,我有另一个接口用作数据源,它定义了相同的属性名称:
interface MyModelSpecificDataSource {
val validValues: List<Int>
...
}
一旦我将定义更改为不同的名称,下划线“_”就不再添加到末尾。
基于此,鉴于任何类都可以实现任何接口,我的假设是这样做是为了将一个定义与另一个定义区分开来,以免它们发生冲突。 Kotlin 团队的好消息!