Instance Method インスタンスメソッド

index(of:inSortedRange:options:usingComparator:)

Returns the index, within a specified range, of an object compared with elements in the array using a given NSComparator block. 与えられたNSComparatorブロックを使って配列の中の要素と比較される、指定された範囲内の、あるオブジェクトのインデックスを返します。

Declaration 宣言

func index(of obj: Any, 
inSortedRange r: NSRange, 
   options opts: NSBinarySearchingOptions = [], 
usingComparator cmp: (Any, Any) -> ComparisonResult) -> Int

Parameters パラメータ

obj

An object for which to search in the array. この配列の中で捜すことになるあるオブジェクト。

If this value is nil, throws an invalidArgumentException. この値がnilならば、invalidArgumentExceptionをスローします。

r

The range within the array to search for obj. 配列内のこの範囲をobjについて検索することになります。

If r exceeds the bounds of the array (if the location plus length of the range is greater than the count of the array), throws an rangeException. rが配列の境界を超えるならば(位置に範囲の長さを足したものが配列総数より大きいならば)、rangeExceptionをスローします。

opts

Options for the search. For possible values, see NSBinarySearchingOptions. 検索のオプション。可能な値としては、NSBinarySearchingOptionsを見てください。

If you specify both firstEqual and lastEqual, throws an NSInvalidArgumentException. あなたがfirstEquallastEqualを両方とも指定するならば、NSInvalidArgumentExceptionをスローします。

cmp

A comparator block used to compare the object obj with elements in the array. 比較用ブロック、オブジェクトobjを配列の要素と比較するのに使われます。

If this value is NULL, throws an invalidArgumentException. この値がNULLならば、invalidArgumentExceptionをスローします。

Return Value 戻り値

If the insertionIndex option is not specified: insertionIndexオプションが指定されないならば:

  • If the obj is found and neither firstEqual nor lastEqual is specified, returns an arbitrary matching object's index. objが見つけられてfirstEquallastEqualも指定されないならば、随意の合致しているオブジェクトのインデックスが返ります。

  • If the firstEqual option is also specified, returns the lowest index of equal objects. firstEqualオプションも同時に指定されるならば、いくつかの同等オブジェクトのうちの最も低いインデックスが返ります。

  • If the lastEqual option is also specified, returns the highest index of equal objects. lastEqualオプションも同時に指定されるならば、いくつかの同等オブジェクトのうちの最も高いインデックスが返ります。

  • If the object is not found, returns NSNotFound. オブジェクトが見つけられないならば、NSNotFoundが返ります。

If the insertionIndex option is specified, returns the index at which you should insert obj in order to maintain a sorted array: insertionIndexオプションが指定されるならば、あなたがソートされた配列を整備する目的でobjを挿入すべきところのインデックスを返します:

  • If the obj is found and neither firstEqual nor lastEqual is specified, returns any equal or one larger index than any matching object’s index. objが見つけられてfirstEquallastEqualも指定されないならば、何らかの合致しているオブジェクトに等しいかより大きい何らかのインデックスが返ります。

  • If the firstEqual option is also specified, returns the lowest index of equal objects. firstEqualオプションも同時に指定されるならば、いくつかの同等オブジェクトのうちの最も低いインデックスが返ります。

  • If the lastEqual option is also specified, returns the highest index of equal objects. lastEqualオプションも同時に指定されるならば、いくつかの同等オブジェクトのうちの最も高いインデックスが返ります。

  • If the object is not found, returns the index of the least greater object, or the index at the end of the array if the object is larger than all other elements. オブジェクトが見つけられないならば、最小のより大きいオブジェクトのインデックス、またはオブジェクトが全ての他の要素より大きいならば配列の最後のインデックスが返ります。

Discussion 議論

The elements in the array must have already been sorted using the comparator cmp. If the array is not sorted, the result is undefined. 配列の中の要素は、すでに比較子cmpを使ってソートされ終わっていなければなりません。配列がソートされていないならば、結果は未定義です。

See Also 参照

Finding Objects in an Array 配列内のオブジェクトを見つける