无法转换类型“Range<Int>?”的值到预期的参数类型'Range<String.Index>?
Posted
技术标签:
【中文标题】无法转换类型“Range<Int>?”的值到预期的参数类型\'Range<String.Index>?【英文标题】:Cannot convert value of type 'Range<Int>?' to expected argument type 'Range<String.Index>?无法转换类型“Range<Int>?”的值到预期的参数类型'Range<String.Index>? 【发布时间】:2021-07-19 19:11:44 【问题描述】:我在尝试传递到 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 中的范围就可以了。有什么想法吗?
【问题讨论】:
【参考方案1】:Swift 字符串不能被Int
索引下标,因为字符的长度是灵活的。
替换
NSMakeRange(0, string.count)
与
NSRange(string.startIndex..., in: string)
或者——更好——只是省略 range
和 locale
参数。
【讨论】:
以上是关于无法转换类型“Range<Int>?”的值到预期的参数类型'Range<String.Index>?的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型“[Surah]”的值转换为预期的参数类型“Range<Int>”
SwiftUI 核心数据错误 - “无法将 'FetchedResults<GCItem>' 类型的值转换为预期的参数类型 'Range<Int>'”