我有一個類AudioDeviceManager,通過引用傳遞一個std :: vector作爲AudioAnalyzer類。簡單的指針問題(在不同的類之間共享一個向量)
我希望其他對象能夠訪問此向量(傳遞給AudioAnalyzer類)。要做到這一點,我在AudioAnalyzer類創建的指針:
std::vector<float> *pointer;
我創建一個getter使用Objective-C的屬性它。 當我在相同的類中,我似乎可以訪問它細並將它傳遞給其他的目的(通過引用)
NSLog(@"%i", [self pointer]);
det->process(time, *[self pointer]);
然而,我似乎無法從另一個類訪問它,頻譜 我初始化這個頻譜類與方法調用(fft_data也是一個指向一個std ::矢量)
- (id) initWithDataVec:(std::vector<float>*)address {
...
fft_data = address;
...
NSLog(@"value: %i", fft_data);
但返回0
寫作`的NSLog(@ 「值:%I」,& fft_data)返回ns什麼似乎是一個有效的地址。但是,這不是指針的地址嗎?
我不確定我的代碼是否正確。我正在尋找一種方法來「分享」不同類別中的單個媒介。理想情況下,一個類將接收到一個指向它們可以隨時訪問的向量的指針,而不必擁有另一個類所調用的函數。
你如何用std :: vector指針調用initWithDataVec?我建議你使用「%p」而不是「%i」作爲NSLog格式的指針。 –
2011-02-28 20:53:23
std :: vector * toData = [分析指針]; \t spectrum = [[Spectrum alloc] initWithDataVec:toData]; –
Edgar
2011-02-28 21:15:09