Почему Xcode 4 не выдает предупреждение о моей неполной реализации протокола UITableViewDataSource?

Если я объявляю и не полностью реализую свой собственный протокол, используя следующий код в Xcode:

SomeProtocol.h:

@protocol SomeProtocol <NSObject> @required -(void)someRequiredMethod; @end 

SomeImplementor.h:

 #import "SomeProtocol.h" @interface SomeImplementor : NSObject <SomeProtocol> @end 

SomeImplementor.m:

 #import "SomeImplementor.h" @implementation SomeImplementor { // I get a warning on this line } @end 

Затем Xcode выдает предупреждение в строке @implementation для SomeImplementor.h, которая читается следующим образом:

Неполная реализация.

Метод 'someRequiredMethod' в протоколе не реализован.

Однако, если я не полностью реализую протокол UITableViewDataSource из UITableView.h со следующим кодом …

SomeClass.h:

 @interface SomeClass : NSObject <UITableViewDataSource> @end 

SomeClass.m:

 #import "SomeClass.h" @implementation SomeClass { // I think I should get a warning here, but I don't } @end 

… тогда Xcode в порядке с ним и не выводит предупреждения нигде, хотя я, очевидно, не реализовал следующие методы из протокола UITableViewDataSource:

 @protocol UITableViewDataSource<NSObject> @required - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; // Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier: // Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls) - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; 

Зачем? Я не вижу причин, по которым эти два случая следует рассматривать по-разному. (И я хочу, чтобы мои предупреждения!)

One Solution collect form web for “Почему Xcode 4 не выдает предупреждение о моей неполной реализации протокола UITableViewDataSource?”

Вероятно, это ошибка в Xcode 4.

Он, по-видимому, исправлен в Xcode 5, который предупреждает вас соответствующим образом.

  • Xcode 6.3 всегда выполняет полную перестройку проекта Swift
  • Постройте задержки в течение полной минуты на «Выполнение действий по установке»
  • Почтовый композитор iOS не уйдет
  • Интерфейс Builder не смог определить тип «Main_iPad.storyboard»
  • Неопределенные символы для архитектуры armv7: "_OBJCCLASS $ _ALAssetsLibrary"
  • Почему мой обрезанный скриншот становится незатронутым, когда я пытаюсь распечатать из рулона камеры? Swift 3, Xcode 8, IOS
  • Xcode 9 iOS Simulator - невозможно получить действительную ручку процесса
  • UIAutomation работает в iOS 6, но не в iOS 7 (UIATarget.setLocationWithOptions)
  • ios - Пауза видеозаписи
  • После Auto-ARC Conversion: присвоение сохраненного объекта небезопасному свойству; объект будет выпущен после присвоения
  • Пользовательская конфигурация iOS (промежуточная) для приложения React Native
  • Interesting Posts

    Используйте UITabBar без UITabBarController для управления UIWebView

    Прозрачность UINavigationController?

    Cloudkit: «Предоставленная ZoneId не соответствует целевой зоне»

    iOS UICollectionView itemSize отличается от коллекцииView, которая основана на том же UICollectionViewFlowLayout

    Как вы делитесь покупкой в ​​приложении между iOS и OS X?

    Последовательные вызовы метода currentViewController UIViewController

    WKImage всегда возвращает ноль

    Youtube в iOS5 – сделанная кнопка Tapped

    возможно ли увеличить / уменьшить UIImageView в пользовательской ячейке UICollectionView только при нажатии на изображение?

    Использование beginReceivingRemoteControlEvents

    Как заставить UIAlertView вызывать `alertViewShouldEnableFirstOtherButton:` после внесения изменений?

    __NSArrayM insertObject: atIndex:]; объект не может быть nil

    Отображаемый размер файла: 1000b = 1kb или 1024b = 1kb?

    Обработчик завершения UIActivityViewController по-прежнему вызывает действие, даже если пользователь нажимает на отмену

    Поведение языка RTL в iOS 9

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.