Как сохранить структуру данных Matrix или Vector в Core Data? - PullRequest
0 голосов
/ 04 июня 2010

Я создаю приложение для iPhone, которое должно хранить некую матрицу или векторные данные в основных данных. По какой-то неизвестной причине iPhone SDK не включает какую-либо матричную структуру данных в свои базовые классы, поэтому я создал свою собственную структуру данных, которая использует NSMutableArray из NSMutableArrays для хранения данных. Пока все хорошо.

Я хотел бы сохранить эту структуру данных в своем основном хранилище данных, и я читал об использовании преобразуемых атрибутов для хранения нестандартных структур. Когда я пытаюсь сохранить структуру данных, я получаю следующую ошибку: [FCMatrix encodeWithCoder:]: unrecognized selector sent to instance Код, который я запускаю, выглядит следующим образом, по сути, просто устанавливая атрибут в моей сущности:

[collection setMatrix:matrix];

На данный момент я предполагаю, что, поскольку матрица - это преобразуемый атрибут, а мой класс FCMatrix - это пользовательский объект (подкласс из NSObject), мне нужно реализовать метод encodeWithCoder в моем классе структуры данных, чтобы Core Data могла правильно кодировать, хранить, а затем декодировать данные, чтобы воссоздать мою структуру данных. Кто-нибудь может объяснить лучший способ сделать это?

Другая идея - я хотел бы знать, что вы думаете, - это перестроить мой класс FCMatrix, чтобы иметь подклассы из NSMutableArray. Если бы NSMutableArray мог быть преобразован, тогда я был бы установлен.

С другой стороны, я убежден, что это слишком много работы и что должен быть более простой способ сделать это. У кого-нибудь есть опыт хранения матричных данных в основных данных?

Ответы [ 2 ]

0 голосов
/ 04 июня 2010

Я нашел решение своей проблемы:

  • Базовые данные могут хранить NSMutableArray объекты в базовых данных в качестве преобразуемых атрибутов.
  • Если я создаю пользовательский класс Matrix, например, «FCMatrix», то основные данные не будут знать, как сохранить его как преобразуемый объект.
  • Поэтому я могу создать свой класс Matrix как полностью статический класс. Затем я могу просто передать объект NSMutableArray в функции и работать с ними, используя мою старую логику.
0 голосов
/ 04 июня 2010

Возможно, стоит обратить внимание на преобразование массивов в байты, которые можно сохранить в объекте NSData и поместить в двоичный атрибут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...