append
добавляет единственный элемент. extend
добавляет список элементов.
Примечание, что при передаче списка для добавления, оно все еще добавляет один элемент:
>>> a = [1, 2, 3]
>>> a.append([4, 5, 6])
>>> a
[1, 2, 3, [4, 5, 6]]
char * buffer = NULL;
В этом причина. Вы выполняете итерацию по знаковым байтам, а не по 16-битным выборкам.
Вместо этого объявите переменную как содержащую указатель на двухбайтовые значения:
SInt16 *buffer = NULL;
Затем выполните итерацию по половине выборок, равных байтам:
for(int i=0;i < (BUFFER_SIZE / sizeof(*buffer));i++){
NSLog(@"%i", buffer[i]);
}
Я бы переименуйте BUFFER_SIZE
в BUFFER_SIZE_BYTES
, чтобы прояснить его.