繁体   English   中英

无法转换“范围”类型的值<Int> ?&#39; 到预期的参数类型 &#39;Range<String.Index> ?

[英]Cannot convert value of type 'Range<Int>?' to expected argument type 'Range<String.Index>?

尝试传入string.range(of:, options:, range:, locale)

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

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

我不确定为什么这会成为一个问题,因为在目标 c 中传递范围是有效的。 有任何想法吗?

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

代替

NSMakeRange(0, string.count)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM