Я получаю больше, чем немного больной от этого iPhone SDK и его документации...
Я называю AudioConverterNew
в документации при Возвратах: это говорит, "возвращает код состояния"... в самом деле...
до сих пор посредством проигрывания вокруг с параметрами я только смог получить две различных ошибки, ни одна из которых перечислены у основания Аудио ссылки Преобразователя.
они - 'mrep' и'? tmf' (кастинг OSStatus к массиву символов), но определенные коды не являются действительно точкой.
насколько я могу сказать, коды случайной ошибки определяются в случайных файлах, таким образом, Вы не можете только искать один файл, я не могу найти документ справки, который просто позволяет Вам искать код ошибки для получения большего количества информации, и от того, что я могу сказать в OS X, можно ли использовать GetMacOSStatusErrorString () для преобразования ошибки во что-то полезное, но нет никакого эквивалентного iPhone?
любая справка значительно ценилась бы.
Править:
хорошо, так кастинг их дает им наоборот (что-то, что я проверил на 'mrep', но не был там так или иначе кругл), fmt? находится в списке для Аудио API Преобразователя и симпатичен сам объяснительный, если немного неопределенный, но достаточно ярмарка, все еще 'перманент' не там (хотя это могло бы быть что-то, чтобы сделать со средством моделирования, не поддерживающим aac декодирующий), и мой общий вопрос все еще стоит.
Нет. Не полностью.
Некоторые OSStatus представляют собой четырехсимвольные коды, поэтому вы можете использовать (извлеченный из примера кода iPhone SDK "CAXException.h
")
static char *FormatError(char *str, OSStatus error)
{
// see if it appears to be a 4-char-code
*(UInt32 *)(str + 1) = CFSwapInt32HostToBig(error);
if (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4])) {
str[0] = str[5] = '\'';
str[6] = '\0';
} else {
// no, format it as an integer
sprintf(str, "%d", (int)error);
}
return str;
}
(См. iOS/C: Преобразовать "integer" в четырехсимвольную строку для еще нескольких способов преобразования четырехсимвольных символов в строку, включая Swift)
NSError's NSOSStatusErrorDomain способен декодировать некоторые ошибки операционной системы. Смотрите ответ @tomk.
Если вам не нужно декодировать номер в программе для пользователя, вы можете использовать скрипт macerror
, чтобы вручную узнать его значение, как указано в @lros's answer. Список поддерживаемых OSStatus можно найти в его исходных кодах в /System/Library/Perl/Extras/5.18/Mac/Errors.pm
.
Существует также онлайновый сервис http://osstatus.com/, собирающий ошибки из всех публичных фреймворков. Они все еще не полностью завершены, например, не хватает упомянутого в комментарии отображения на -12792
. Возможно, это код из частной структуры.