uint32_t数组的NSLog内容

时间:2013-10-08 14:34:12

标签: iphone ios objective-c c arrays

我正在与另一位程序员合作完成一些代码。他在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] ??

    }   
}

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

尝试

NSLog(@"%u", [decoderWrapped decodedData][j]);

你的循环内部到目前为止。

答案 1 :(得分:1)

简短回答是NSLog( @"%d", [[decoderWrapped decodedData][j] )uint32_t实际上只是unsigned intrelated - 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]);
    }