尝试使用这样的方法:
let myrange = 0...3
let rang = data.range(of: data, options: NSData.SearchOptions(), in: myrange)
收到以下错误。
cannot convert value of type 'CountableClosedRange<Int>' to expected argument type 'Range<Data.Index>?'
此方法的文档: https://developer.apple.com/documentation/foundation/nsdata/1410391-range
指定参数的类型:as NSRange。 但是创建一个像这样的NSRange:
let myNSRange = NSRange(location: 3, length: 2)
导致此错误:
cannot convert value of type 'NSRange' (aka '_NSRange') to expected argument type 'Range<Data.Index>?'
如何创建可在此处使用的&#39; Range<Data.Index>
&#39;
感谢。
答案 0 :(得分:2)
要从字面上创建Range<Data.Index>
,您必须使用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)
基金会NSRange
和Swift Range
是完全不同的两件事。
顺便说一下:options
参数的默认值为 no options ,可以省略。