Swift3 如何指定范围';in:';Swift 3方法范围的参数(of:options:in)

Swift3 如何指定范围';in:';Swift 3方法范围的参数(of:options:in),swift3,Swift3,尝试使用以下方法: let myrange = 0...3 let rang = data.range(of: data, options: NSData.SearchOptions(), in: myrange) let myNSRange = NSRange(location: 3, length: 2) 获取以下错误 cannot convert value of type 'CountableClosedRange<Int>' to expected argument t

尝试使用以下方法:

let myrange = 0...3
let rang = data.range(of: data, options: NSData.SearchOptions(), in: myrange)
let myNSRange = NSRange(location: 3, length: 2)
获取以下错误

cannot convert value of type 'CountableClosedRange<Int>' to expected argument type 'Range<Data.Index>?'
导致此错误的原因:

cannot convert value of type 'NSRange' (aka '_NSRange') to expected argument type 'Range<Data.Index>?'
无法将类型为“NSRange”(也称为“\NSRange”)的值转换为预期的参数类型“Range”
如何创建将在此处工作的“
范围”

谢谢。

要创建一个
范围
,您必须使用
CountableRange
操作符并注释类型:

let data = Data(0..<100)
let subData = Data(0..<2)

let myrange : Range<Data.Index> = 0..<4
let rang = data.range(of: subData, in: myrange) // Range(0..<2)

let data=data(0..感谢您的回答。这完全解决了问题,是学习Swift 3下的所有范围的起点。