Я пытаюсь проанализировать массив Векторов (из st ++ :: vector в C ++) в NSMutableArray из NSNumber.Тем не менее, вектор, который я добавляю в массив NSNumber, всегда равен nil, даже после добавления NSNumber (проанализированный из std :: vector)
В этом проекте я пытаюсь подключить алгоритм OpenCV Canny Edge Detection(C ++) в мой проект Swift.Один из их методов возвращает все края фотографии как std :: vector.Итак, я пытаюсь разобрать это в массив, который совместим со Swift (используя Objective-C ++ в качестве языка-посредника).На данный момент кажется, что только одна строка работает неправильно (как указано выше).Я также начинающий программист Objective-C ++, поэтому в коде могут быть некоторые распространенные ошибки, которых я не обнаружил.
/*Ptr<LineSegmentDetector>*/
cv::Ptr<cv::LineSegmentDetector> ls = cv::createLineSegmentDetector(cv::LSD_REFINE_STD) ;//Creates the line detector (AKA what I called the edge detector)
std::vector<cv::Vec4f> lines_std;
[image convertToMat: &mat];
// Detect the lines
ls->detect(mat, lines_std);
//Swift compatible NSMutableArray to return from this method
NSMutableArray *edgeLines;
printf("currently finding the edge lines");
for (int i = 0; i < lines_std.size(); i ++) {
NSMutableArray<NSNumber *> *vector;
//Convert from Vec4f to NSNumber
for (int k = 0; k < 4; k ++) {
[vector addObject: [NSNumber numberWithFloat: (lines_std[i][k])]]; //HERE, I'm parsing each float value in each vector (from std::vector<cv::Vec4f>) and adding it to a NSArray, like a vector
}
//Here, I add the vectors to the return NSMutable array
[edgeLines insertObject:vector atIndex:edgeLines.count];
}
return edgeLines;
Как указано выше, переменная "vector" всегда равна nil,хотя я добавляю к нему объект NSNumber.