私はまったく同じ問題を抱えているようです。{7,7} 範囲を使用している場合、CFBitVectorGetBits は *bytes を nil に設定します。解決策は見つかりましたか?今のところ、ビットを愚かに反復することで実装しています。
編集:
コードの追加:
CFBitVectorRef source = ... ;// Some source bit vector
CFIndex location = 7;//Current location in bit vector
uint8 *bytes = malloc(sizeof(uint8));
//CFBitVectorGetBits(source, CFRangeMake(location,7), bytes);//This one is bugged
CFBitVectorRef buffer = CFBitVectorCreateMutable(NULL,7);
CFBitVectorSetCount(buffer, 7);
for (CFIndex i=0; i<7; i++)
CFBitVectorSetBitAtIndex(buffer, i, CFBitVectorGetBitAtIndex(source, location+i));
CFBitVectorGetBits(buffer, CFRangeMake(0, 7), bytes);
//Now *bytes contains needed bits
必要に応じて機能します。