Instance MethodFoundationEssentials
firstRange(of:in:)
iOS 8.0+
iPadOS 8.0+
Mac Catalyst 8.0+
macOS 10.10+
tvOS 9.0+
watchOS 2.0+
Returns the first found range of the type’s data buffer within the specified range.
func firstRange<D, R>(of data: D, in range: R) -> Range<Self.Index>? where D : DataProtocol, R : RangeExpression, Self.Index == R.Bound
Parameters
dataThe data sequence to find.
rangeA range to limit the scope of the search.
Return Value
The range, if found, of the first match of the provided data sequence.
Discussion
An example of searching a constrained range within a data buffer for the first match:
let data: [UInt8] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
let pattern: [UInt8] = [2, 3, 4]
let possibleMatch = data.firstRange(of: pattern, in: 5...9)
// possibleMatch == nil
let match = data.firstRange(of: pattern, in: 2...9)
// match == 2..<5