我正在与另一位程序员合作完成一些代码。他在C中编写了一个解码算法,并为我提供了一个Objective-c类,它用作一个包装器,以避免我必须处理对其代码的调用。
他的.h文件看起来像这样
#import <UIKit/UIKit.h>
#import "decode_audio_data.h"
@interface DecoderWrapper : UIViewController {
uint32_t numberOfDecodedData;
uint32_t decodedData[MAX_DECODED_DATA_SIZE];
}
- (void) feedData:(int16_t [])data;
- (uint32_t) numberOfDecodedData;
- (uint32_t *) decodedData;
@end
现在,我正在调用“feedData”和“numberOfDecodedData”函数,但是我遇到了一些调用“decodingData”的问题,它应该返回一个uint32_t数组。
我如何NSLog该阵列的内容?我很困惑因为我不知道C而且我对指针不太自信....
这是我正在进行通话的地方:
[decoderWrapped feedData:debug];
if ([decoderWrapped numberOfDecodedData] > 0) {
for (in j=0; j<[decoderWrapped numberOfDecodedData]; j++) {
// how do I print out every position of [decoderWrapped decodedData] ??
}
}
任何帮助表示赞赏!
答案 0 :(得分:1)
尝试
NSLog(@"%u", [decoderWrapped decodedData][j]);
你的循环内部到目前为止。
答案 1 :(得分:1)
简短回答是NSLog( @"%d", [[decoderWrapped decodedData][j] )
。 uint32_t
实际上只是unsigned int
(related - typedef
)。
更长的答案是你想看看string formatting guide,它几乎与C-string formatting完全相同,还有一些处理对象的补充。
答案 2 :(得分:1)
uint32_t *decodedData = [decoderWrapped decodedData];
for (int j=0; j<12; j++) {
NSLog(@"%d",decodedData[j]);
}