У меня есть приложение, которое в конечном итоге является программой базы данных. В настоящее время я использую NSMutableArray «элементных» объектов, которые имеют пару десятков предопределенных свойств и одно свойство, которое является изменяемым словарем, используемым для пользовательских свойств (которые определяются во время выполнения).
Для этого я использую valueForUndefinedKey:
, что вызывает поиск в изменяемом словаре "пользовательские поля". Все это работает очень хорошо и позволяет мне создавать предикаты, основанные как на встроенных свойствах, так и на пользовательских свойствах.
Я подумываю переместить его в Базовые данные, но не могу определить способ разрешить Пользователь для определения свойств (атрибуты в Core Data-говорят). Я могу создать трансформируемый атрибут, представляющий собой словарь, в который пользователь может добавлять ключи / значения, но нет способа искать его.
Я также подумал, что мои встроенные свойства / атрибуты могут быть выполнены в Базовые данные, а затем отдельный массив неосновных данных могут содержать словари для моих пользовательских полей (в основном так же, как сейчас). Будет ли это работать хорошо?
У меня есть NSTableView, который должен показывать столбцы как из встроенных полей, так и из пользовательских полей (с использованием привязок), и мне нужно иметь возможность строить предикаты, которые охватывают оба типа тоже.
Так, например, мои элементы - это «Персона», а встроенные атрибуты - «Имя», «День рождения», «Номер телефона» и т. д. c, а затем пользователь может добавить к ним такие поля, как «Марка, Модель». Кредитный рейтинг ", et c.
Я не уверен, что Core Data подходит для этого, когда мое приложение должно разрешать создание пользовательских полей / свойств / атрибутов, сохраняя при этом их можно искать с помощью пользовательских предикатов.