Skip to content

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

data

The data sequence to find.

range

A 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