2010-09-23 6 views
4

Je reçois cet avertissement.Iphone, comment puis-je corriger cet avertissement: '-respondsToSelector:' introuvable dans le (s) protocole (s)

'-respondsToSelector:' introuvable dans le protocole (s)

Il se produit sur la ligne marquée par "ICI" ci-dessous.

- (NSString *)tableView:(UITableView *)tableView 
    titleForFooterInSection:(NSInteger)section { 

    id<SetsSectionController> sectionController = 
     [sectionControllers objectAtIndex:section]; 

    if ([sectionController respondsToSelector: 
      @selector(tableView:titleForFooterInSection:)]) { //HERE 

     return [sectionController tableView:tableView 
      titleForFooterInSection:section]; 

    } 
    return nil; 
} 

Utilise mes fichiers h complets.

#import <UIKit/UIKit.h> 


@interface SettingsTableViewController : UITableViewController { 
    NSArray *sectionControllers; 

} 

@end 

Que dois-je faire pour corriger l'erreur?

Répondre

12

Ou faire SetsSectionController Hériter de NSObject:

@protocol SetsSectionController <NSObject> 

... ou jeter à id:

if ([(id) sectionController respondsTo...]) 
1
if ([(NSObject *)sectionController respondsToSelector: 
     @selector(tableView:titleForFooterInSection:)]) 
1

quelqu'un avait besoin,

SEL selector = NSSelectorFromString(@"tableView:titleForFooterInSection:"); 

if([sectionController respondsToSelector:selector]) { 
    objc_msgSend(sectionController, selector, tableview, section); 
} 

Remarque: Ne l'oubliez pas, #import <objc/message.h>

Questions connexes