Что это за тип данных? - PullRequest
2 голосов
/ 02 мая 2010

В заголовке класса я видел что-то вроде этого:

enum {
    kAudioSessionProperty_PreferredHardwareSampleRate           = 'hwsr',   // Float64
    kAudioSessionProperty_PreferredHardwareIOBufferDuration     = 'iobd'   // Float32
};

Теперь мне интересно, к какому типу данных относится данный kAudioSessionProperty_PreferredHardwareSampleRate?

Я имею в виду, что это выглядит как обычный старый C, но в Objective-C я написал бы @ "hwsr", если бы хотел сделать его строкой.

Я хочу передать такую ​​"константу" или "вещь перечисления" в качестве аргумента методу.

1 Ответ

4 голосов
/ 02 мая 2010

Преобразуется в значение перечисления UInt32, используя значение ASCII каждой из записей. Этот стиль давно используется в заголовках Mac OS.

«hwsr» имеет то же значение, как если бы вы написали 0x68777372, но намного удобнее для чтения. Если бы вместо этого вы использовали стиль @ "hwsr", вам понадобилось бы более 4 байтов для представления одного и того же.

Преимущество использования этого стиля в том, что вы на самом деле можете быстро идентифицировать содержимое потока необработанных данных, если видите его значения ASCII.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...