Как определить, какие методы не реализованы, когда XCode имеет предупреждения
Иногда у меня есть интерфейс, который реализует несколько протоколов, и я получу предупреждение от XCode о том, что моя реализация неполна.
Есть ли простой способ определить, какие методы "необходимы", но но реализованы (без необходимости вставлять фиктивные реализации всех необязательных методов из файлов заголовков протокола)?
Например, у меня есть предупреждение об этом интерфейсе, но я не хочу, чтобы он копал все протоколы. Очевидно, XCode знает, что некоторые из них отсутствуют, почему они не могут просто сказать, какие они есть?
@interface KTThumbsViewController : UIViewController <KTThumbsViewDataSource, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIAlertViewDelegate>
XCode 4
![enter image description here]()
Ответы
Ответ 1
Не нашел ответа здесь, к сожалению. Но немного больше копания ответило в навигаторе проблем в представлении Navigator.
Откройте представление "Навигатор" с помощью кнопок "Вид" в правом верхнем углу:
![View Navigator toggle button]()
Затем откройте навигатор проблем с помощью кнопки треугольника/восклицательного знака в верхнем левом углу:
![enter image description here]()
Если вы разберете семантический выпуск "Незавершенной реализации" с небольшим треугольником слева, вы увидите детали жалобы XCode.
Ответ 2
Нажмите alt и щелкните по протоколу, xcode покажет вам, где он определен, чтобы вы могли взглянуть на файл заголовка. Кроме того, на вкладке "Проблемы" он покажет вам, какие методы вы еще не реализовали.
Ответ 3
В качестве продолжения этого
Иногда "Незавершенная реализация" на самом деле означает "Несоответствие между прототипом функции и реализованной функцией".
Например, если в вашем файле .h вы получили следующее:
- (NSTimeInterval) SayDigit: (int) score;
Но в вашем файле .m вы получили следующее:
- (NSTimeInterval) SayDigit: (int) digit: (NSTimeInterval) time
Вы получите предупреждение "Незавершенная реализация".