Плистская иерархия и опция «Все» - PullRequest
0 голосов
/ 16 ноября 2009

У меня есть строка данных в списке, которую я должен отобразить, иерархически, как это:

Меню> Глава> Подглава> элемент> сведения об элементе

Это может быть очень просто, в моем начальном меню, как я могу иметь все элементы меню «Все» для отображения всех «элементов», по существу пропуская главу и подраздел, вырезая этот аспект моего фильтра, сохраняя другие аспекты главы и подраздела.

Я мог бы сделать это, удвоив данные обо всех предметах, где бы я ни хотел, чтобы они появлялись, но это казалось очень неэффективным.

или

Было бы проще разобрать данные в основной объект данных, чтобы сделать это?

1 Ответ

2 голосов
/ 16 ноября 2009

CoreData может значительно упростить ваш код, особенно если вам часто приходится добавлять, удалять или изменять объекты. Затем вы можете получить элементы в одном запросе на выборку, что весьма эффективно.

С другой стороны, если вы используете только более или менее статические данные, тогда издержки, которые вы генерируете с помощью CoreData (ManagedObjectContext, PersistentStoreCoordinator и т. Д.), Могут не окупиться, и вам лучше всего просто проанализировать plist для создания массива держа все предметы, как это:

NSMutableArray* allItems = [NSMutableArray array];
for (NSArray* chapter in menu) {
    for (NSArray* subchapter in chapter) {
        for (id item in subchapter) {
            [allItems addObject:item];
        }
    }
}
...