2012-02-23 15 views
3

Objective-C++の短いintをObjective-C配列に保存し、後でObjective-C++に変換するにはどうすればよいですか?私は成功なしで次のように試みました。どんな助けも素晴らしいだろう!Objective-C++からObjective-Cへの値の保存/取得

short int *tmpbuffer = (short int*)malloc(sizeof(short int)*length*inData); 

int count = 0; 
for (count = 0; count < length*inData; count++) 
{ 
    tmpbuffer[count] = (short int) (inbuffer[count] * 0x7fff); 
} 

size = fwrite(tmpbuffer, 1, sizeof(short int)*length*inData,fp); 

    [fwriteSections addObject:[NSNumber numberWithShort:tmpbuffer]]; 
    [fwriteSections addObject:[NSNumber numberWithShort:sizeof(short int)*length*inchannels]]; 
    [fwriteRows addObject:fwriteSections]; 

答えて

2

単純なバイトバッファのためにObjective C++とObjective Cの間で変換を行う必要はありません。 Objective C++クラスとObjective Cクラスの間にポインタshort intを渡すことができます。

あなたが意味する場合は、どのようにあなたがNSArrayshort intバイトのバッファを変換することができ、その後、あなたは正しい軌道に乗っている、ちょうど次の操作を行います

short int *buffer = malloc(size * sizeof(short int)); 
NSMutableArray *shortArray = [NSMutableArray arrayWithCapacity:size]; 
for (NSUInteger i = 0; i < size; i++) { 
    [shortArray addObject:[NSNumber numberWithShort:buffer[i]]]; 
} 

私はそれがある、しかしこのアプローチをお勧めしません効率的ではない場合は、Cスタイルのバッファを使用する方がよいでしょう。

関連する問題