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

initWithObject:type:index:associatedIndex:

Creates a change object that represents inserting, removing, or moving an object from an ordered collection at a specific index. ある変更オブジェクトを作成します、それはあるオブジェクトを順序コレクションから指定インデックスで挿入、除去、または移動することを表します。

Declaration 宣言

- (instancetype)initWithObject:(ObjectType)anObject 
                          type:(NSCollectionChangeType)type 
                         index:(NSUInteger)index 
               associatedIndex:(NSUInteger)associatedIndex;

Parameters パラメータ

anObject

An optional object the change will remove or insert. その変更が除去または挿入するあるオプショナルオブジェクト。

type

The type of change. 変更の型。

index

The index location within an ordered collection where the change applies. ある順序コレクション内でのインデックス位置、そこでこの変更が適用されます。

associatedIndex

The index of the change’s counterpart of the opposite type in the diff. diffにおける反対型の、この変更のもつ対応物のインデックス。

Discussion 議論

Pairs of changes with opposite types that refer to each other represent the index location of their counterpart with the associatedIndex property. Initializing an NSOrderedCollectionDifference with broken associations (or associations that aren’t reflexive) generates an exception. The following example creates a diff where the object @”Red” moves from index 8 to index 3: 相互に参照する反対型をもつ変更のペアは、それらの対応物のインデックス位置をassociatedIndexプロパティで表します。NSOrderedCollectionDifferenceを壊れた結び付き(または再帰的でない結び付き)で初期化することは、例外を発生させます。以下の例は、あるdiffを作成します、そこでオブジェクト@”Red”はインデックス8からインデックス3に移動します:


NSOrderedCollectionDifference *diff = [[NSOrderedCollectionDifference alloc] initWithChanges:@[
    [NSOrderedCollectionChange changeWithObject:@"Red" type:NSCollectionChangeRemove index:8 associatedIndex:3],
    [NSOrderedCollectionChange changeWithObject:@"Red" type:NSCollectionChangeInsert index:3 associatedIndex:8]
]];

A move pair can have a different object in its removal and insertion changes, which can imply that the change represents moving and changing or replacing an element. Diffs that controller:didChangeContentWithDifference: passes to delegates of NSFetchedResultsController communicate that an object changed even when its position in the results is unaffected. ある移動ペアは、ある別個のobjectを、それの除去および挿入変更の中に持つことができます、それはその変更が要素の移動および変更または置換を表すことを暗に示めせます。controller:didChangeContentWithDifference:NSFetchedResultsControllerの委任先に渡すdiffは、あるオブジェクトが変化したと知らせます、たとえそれの位置が結果において変わらない時でさえも。

See Also 参照

Creating a Change ある変更を作成する