Я создаю приложение для iPhone, которое должно хранить некую матрицу или векторные данные в основных данных. По какой-то неизвестной причине iPhone SDK не включает какую-либо матричную структуру данных в свои базовые классы, поэтому я создал свою собственную структуру данных, которая использует NSMutableArray
из NSMutableArrays
для хранения данных. Пока все хорошо.
Я хотел бы сохранить эту структуру данных в своем основном хранилище данных, и я читал об использовании преобразуемых атрибутов для хранения нестандартных структур. Когда я пытаюсь сохранить структуру данных, я получаю следующую ошибку: [FCMatrix encodeWithCoder:]: unrecognized selector sent to instance
Код, который я запускаю, выглядит следующим образом, по сути, просто устанавливая атрибут в моей сущности:
[collection setMatrix:matrix];
На данный момент я предполагаю, что, поскольку матрица - это преобразуемый атрибут, а мой класс FCMatrix - это пользовательский объект (подкласс из NSObject), мне нужно реализовать метод encodeWithCoder
в моем классе структуры данных, чтобы Core Data могла правильно кодировать, хранить, а затем декодировать данные, чтобы воссоздать мою структуру данных. Кто-нибудь может объяснить лучший способ сделать это?
Другая идея - я хотел бы знать, что вы думаете, - это перестроить мой класс FCMatrix, чтобы иметь подклассы из NSMutableArray. Если бы NSMutableArray мог быть преобразован, тогда я был бы установлен.
С другой стороны, я убежден, что это слишком много работы и что должен быть более простой способ сделать это. У кого-нибудь есть опыт хранения матричных данных в основных данных?