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

differenceFromOrderedSet:withOptions:

Compares two ordered sets, with options, to create a difference object that represents the changes between them. 2つの順序集合を、オプションそれらで比較することで、それらの間の変化を表すある差異オブジェクトを作成します。

Declaration 宣言

- (NSOrderedCollectionDifference<ObjectType> *)differenceFromOrderedSet:(NSOrderedSet<ObjectType> *)other 
                                                            withOptions:(NSOrderedCollectionDifferenceCalculationOptions)options;

Discussion 議論

The difference method creates the difference object by comparing objects within the ordered sets with the isEqual: method. 差異メソッドは、差異オブジェクトを、順序集合内のオブジェクトそれらをisEqual:メソッドで比較することによって作成します。

The options allow you to choose to omit insertion or removal references to the change objects within the difference object. You can also choose to infer moves when computing the difference, which provides an associatedIndex within the change objects that indicates the index in the ordered set where the object moved from. オプションは、変化オブジェクトへの挿入または除去参照を差異オブジェクト内で省くことをあなたに選ばせます。あなたはまた、差異を計算する時に移動を推論することを選べます、それは変化オブジェクトそれら内でのあるassociatedIndexを提供します、それは、そこからそのオブジェクトが移動したところの、その順序集合の中のインデックスを指し示します。

The following example computes the difference between two ordered sets, inferring moves between them: 以下の例は、2つの順序集合の間の差異を、それらの間の移動を推論して計算します:


NSOrderedSet *original = [NSOrderedSet
                           orderedSetWithObjects:@"Red", @"Green", @"Blue", nil];
NSOrderedSet *modified = [NSOrderedSet
                           orderedSetWithObjects:@"Red", @"Blue", @"Green", nil];


NSOrderedCollectionDifference *diff = [original
                                       differenceFromOrderedSet:modified
                                       withOptions:NSOrderedCollectionDifferenceCalculationInferMoves];


// diff.hasChanges == TRUE
// diff.insertions.count == 1
// diff.removals.count == 1


// Inferring the moves adds an associatedIndex into the change.
NSOrderedCollectionChange* insertion = diff.insertions[0];
// insertion.index == 2
// insertion.associatedIndex == 1


NSOrderedCollectionChange* deletion = diff.removals[0];
// deletion.index == 1
// deletion.associatedIndex == 2

See Also 参照

Comparing with Another Set 別の集合と比較する