У меня есть класс AudioDeviceManager, который передает std :: vector по ссылке на класс AudioAnalyzer.
Я хочу, чтобы другие объекты могли иметь доступ к этому вектору (который передается в класс AudioAnalyzer). Для этого я создал указатель в классе AudioAnalyzer:
std::vector<float> *pointer;
Я создал для него геттер, используя свойства Objective-C.
Когда я нахожусь в том же классе, я могу нормально обращаться к нему и передавать его другим объектам (по ссылке)
NSLog(@"%i", [self pointer]);
det->process(time, *[self pointer]);
Однако я не могу получить к нему доступ из другого класса, спектра
Я инициализирую этот класс спектра вызовом метода (fft_data также является указателем на std :: vector)
- (id) initWithDataVec:(std::vector<float>*)address {
...
fft_data = address;
...
Но NSLog(@"value: %i", fft_data);
возвращает 0.
Запись `NSLog (@" value:% i ", & fft_data) возвращает то, что кажется правильным адресом. Но разве это не адрес указателя?
Я не уверен, что мой код правильный. Я ищу способ «поделиться» одним вектором среди разных классов. В идеале один класс получит указатель на вектор, к которому они могут получить доступ в любое время, без необходимости вызова функции другим классом.