1

iCloud は、リレーションシップの順序付きセットをサポートしておらず、セットのみをサポートしています。現在、「entryIndex」と呼ばれる属性を作成しました。ここには、指定された独自のインデックス値が格納されています。ユーザーが特定のインデックスでオブジェクトを削除すると、オブジェクトを識別し、より高いインデックスを持つオブジェクトの値を変更したいと考えています。どうすればいいですか?

4

1 に答える 1

1

連続したインデックスがあり、それらをギャップなしで「タイト」に保ちたいと仮定します。

NSArray *filtered = [fetchedObjects filteredArrayUsingPredicate:
   [NSPredicate predicateWithFormat:@"entryIndex > %@", 
                                    deletedObject.entryIndex]];
for (NSManagedObject *obj in filtered) {
   obj.entryIndex = [NSNumber numberWithInt:[obj.entryIndex intValue]-1];
}
[self.managedObjectContext save:nil];
于 2012-07-22T00:20:02.960 に答える