You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin Native中直接调用NSRange构造器报错,求解决方案

解决Kotlin Native中无法直接调用NSRange构造器的问题

在Kotlin Native的Objective-C互操作体系中,NSRange这类Objective-C结构体不允许直接通过构造器实例化,必须使用自动生成的工厂函数NSRangeMake来创建实例。

修改后的代码如下:

actual class PlatformRegex actual constructor() {

    actual fun findAll(pattern: String, input: String): List<String> {
        val regex = NSRegularExpression(pattern = pattern, options = 2, error = null)

        // 使用NSRangeMake创建NSRange实例,替代直接调用构造器
        val range = NSRangeMake(location = 0u, length = input.length.toULong())
        val matches = regex.matchesInString(string = input, options = 2, range = range)
        return matches.map { match -> match.toString() }
    }
}

关键修改说明:

  • 移除原代码中直接实例化NSRange的逻辑,改用NSRangeMake函数创建范围对象,这是Kotlin Native处理Objective-C结构体的标准方式。
  • 无需再调用readValue(),NSRangeMake返回的就是可直接使用的NSRange实例。

内容的提问来源于stack exchange,提问作者Pavlo Kravchenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:36:22