Во-первых, убедитесь, что вы понимаете разницу между (и правильно используете терминологию) "сущностью" и "экземпляром".Это имеет все значение при общении ваших проблем / решений с другими.
Второе: не беспокойтесь о NSCollectionViewItems ... беспокойтесь о «представляемом объекте» каждого из них, который содержится в каком-то контейнере.
В-третьих: Вы хотели, чтобы порядок отображения был постоянным атрибутом вашей сущности, или вам просто нужно знать, в каком положении находится элемент в данный момент, независимо от того, каким он может быть позже?Важный вопрос.
Четвертый: Базовые данные не дают вам понятия упорядоченных коллекций.Это необходимо для поддержки типов хранилищ, таких как NSSQLiteStoreType, где может потребоваться ошибка только в нескольких элементах (или в одном) без загрузки всего списка.Таким образом, вы сами по себе, если вы хотите постоянный порядок сортировки.Чтобы сделать это, просто добавьте к своей сущности атрибут «sortOrder» и сделайте его числовым типом.
Пятый: из-за проблемы «не упорядоченных коллекций», описанной выше, вы пытаетесь найти индекс данногоЭкземпляр вашей сущности из массива, построенного из набора, в котором был обнаружен недетерминированный порядок, обречен на провал.
Шестое: поскольку вы используете контроллер массива, вам необходимо установить егодескрипторы сортировки.Вы захотите использовать свой ключ "sortOrder".Таким образом, ваши извлеченные экземпляры всегда будут сортироваться по их «sortOrder».
Седьмое и наконец: если вы пытаетесь получить индекс любых объектов в наборе контроллера массива *1013*/ массив объектов, вы захотите запросить его -arrangedObjects, так что вы получаете индекс объекта в коллекции sorted , которой управляет контроллер массива.
Надеюсь, чтопомогает.
Обновление для Lion (10,7)
Что касается моего шестого пункта: если вы нацеливаетесь на 10,7 и выше в вашем приложении, [NSManagedObject теперь дает упорядоченные отношения.] [1] Используйте -mutableOrderedSetValueForKey: и -mutableOrderedSetValueForKey: для установки и получения NSOrderedSets.Ура!