Objective-C Не работает изменение размера вектора экземпляра

#c #ios #objective-c #opencv #vector

#c #iOS #objective-c #opencv #вектор

Вопрос:

У меня есть оболочка iOS OpenCV в Objective-C , которая выглядит следующим образом:

 // CVImage.mm

@interface CVImage()
@property std::vector<std::vector<cv::Point>> contours;
@end

@implementation CVImage

...

- (void) findContours
{
  // Find and store contours with cv::findContours
}

// Resize method
- (void) resizeTo:(NSInteger)count
{
  // Stuff that ensures count is less than self.contours.size()

  ...

  self.contours.resize(count);
}

...

@end
  

Но contours вектор не изменяется. Они отлично отображаются на экране, но если я попытаюсь изменить размер или отсортировать его, код выдает ошибку.

Изменение размера локальной тестовой std::vector<std::vector<cv::Point>> переменной работает, но не моей переменной-члена экземпляра.

Я неправильно инициализирую его в своей CVImage() категории? Или OpenCV делает что-то странное?

Ответ №1:

Хорошо, я понял это. Думаю, я плохо его инициализировал. Вы должны убедиться, что это contours указатель (т. Е. std::vector<std::vector<cv::Point>> * ).

Обновите все ссылки, чтобы они соответствовали, и все работает так, как должно.