Цель c — Хранение структур / объектов c ++ в NSData

Я разрабатываю iOS с OpenCV.
OpenCV является библиотекой изображений с открытым исходным кодом и работает с C ++.

Я хочу сохранить некоторые данные из библиотеки в объекте NSData.
Можно ли преобразовать структуру c ++ в NSData без потери объекта?

- (void)addMat:(cv::Mat)mat andImageName:(NSString *)name {self.myMat = [NSData dataWithBytes:&mat length:sizeof(mat)];
self.imageName = name;

}

Сейчас я использую код выше.
Но эта NSData хранит только указатели, а не фактические данные.
Когда я пытаюсь вернуть объект, я

освобожденный указатель не был выделен
* установить точку останова в malloc_error_break для отладки

Мои данные должны храниться в базе данных SqLite.

У вас есть идея конвертировать все?

Я пытался преобразовать каждое свойство. Для некоторых свойств это работало довольно хорошо, а для других — не получалось.

Я надеюсь, что вы могли бы помочь мне.

Спасибо.

Привет,

Александр Генрих

0

Решение

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

Вы должны включить Objective-C ++ и работать напрямую со структурами / классами C ++.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]