Я разрабатываю 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.
У вас есть идея конвертировать все?
Я пытался преобразовать каждое свойство. Для некоторых свойств это работало довольно хорошо, а для других — не получалось.
Я надеюсь, что вы могли бы помочь мне.
Спасибо.
Привет,
Александр Генрих
Вы можете записывать байты из объектов внутри данных, но он не хранит объект. Например, объект может иметь указатели на другие объекты, и через некоторое время они могут стать недействительными, но ваша копия NSData не будет знать об этом.
Вы должны включить Objective-C ++ и работать напрямую со структурами / классами C ++.
Других решений пока нет …