Как отмечали несколько других авторов, это больше C, чем Objective-C.Может быть полезным поиск хорошего учебника по C (книга C & R всегда хороший выбор).Однако, чтобы ответить на несколько ваших вопросов:
Что я не понимаю, так это все, начиная с "sizeof".Единственное значение, которое я точно знаю, что это здесь, это "channelcount".Что здесь делает sizeof и какие значения размера могут передавать AudioBufferList и AudioBuffer?Существуют ли постоянные значения или что-то еще?
sizeof
- это оператор C (несмотря на то, что он выглядит как функция), который возвращает размер в байтах данного типа данных.malloc
- это функция, которая выделяет память, поэтому в этой строке в основном говорится: «выделите достаточно памяти для AudioBufferList
, AudioBuffer
и необходимых мне каналов и верните указатель на выделенную область памяти».
Что делает "->"?
Он получает член структуры через указатель.В C структура похожа на объект Objective-C: она имеет членов , которые в основном похожи на переменные экземпляра в Objective-C.В Objective-C, если вы хотите вызвать метод myValue
, вы должны сделать [obj myValue]
;в C, если у вас есть указатель на структуру и вы хотите получить значение my_value
, вы должны сделать obj->my_value
, что в основном совпадает с (*obj).my_value
, что говорит "получить объект, на который указывает obj
, и найдите в нем элемент my_value
".
Что означает" size_t "?
size_t
является распространенным типом данных C.На большинстве платформ он «определен по типу» как unsigned int
или unsigned long
и используется для представления размеров объектов независимо от платформы.
Также есть "mBuffers "какая-то системная константа?
Нет;это член (помните, вроде как переменная экземпляра) bufferList
, который, вероятно, является типом данных AudioBufferList
.