Как обрабатывать предупреждение Xcode "нет предыдущего прототипа для функции..."?
Это предупреждение выдает кучу в некоторых сторонних библиотеках.
Есть ли способ справиться с этим без изменения кода (например, игнорировать предупреждение)?
Если мне нужно изменить код, чтобы исправить его, как это сделать?
Здесь один из блоков кода, вызывающих предупреждение:
BOOL FBIsDeviceIPad() {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return YES;
}
#endif
return NO;
}
Ответы
Ответ 1
Обычно с такими предупреждениями можно просто определить прототип функции в верхней части файла, например:
BOOL FBIsDeviceIPad();
Но в C метод без ничего между фигурными скобками, т.е. ()
на самом деле означает, что существует произвольное количество параметров. Вместо этого определение должно быть (void)
для обозначения параметров no:
BOOL FBIsDeviceIPad(void);
...
BOOL FBIsDeviceIPad(void) {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return YES;
}
#endif
return NO;
}
Ответ 2
В Xcode4 перейдите к настройкам проекта. Найдите "prototype". Должна быть опция "Пропущенные прототипы функций"; отключите его. Вы также можете сделать это с конкретной целью (-ами), о которой идет речь.
Ответ 3
Нет предупреждений, если такая функция определена как встроенная.
Это может быть достаточно, если ваша функция оптимизирована для встроенного использования.
http://msdn.microsoft.com/en-us/library/1w2887zk.aspx