无法将 'Range<Int>?' 类型的值转换为预期的参数类型"范围<字符串>?



我在尝试传递到string.range(of:, options:, range:, locale)时出错

具体来说,对于我尝试传入的范围修饰符Range(remainingRange)remainingRange = NSMakeRange(0, string.count)

然而,该错误似乎表明它的类型不匹配,其中没有String.Index:'Range<Int>?' to expected argument type 'Range<String.Index>?'

我不知道为什么这会成为一个问题,因为在目标c中只通过范围是可行的。有什么想法吗?

Swift字符串不能被Int索引下标,因为字符的长度是灵活的。

更换

NSMakeRange(0, string.count)

带有

NSRange(string.startIndex..., in: string)

或者——更好——只是省略rangelocale参数。

相关内容

最新更新