Iphone,我该如何解决这个警告:'-respondsToSelector:' not found in protocol(s)
Posted
技术标签:
【中文标题】Iphone,我该如何解决这个警告:\'-respondsToSelector:\' not found in protocol(s)【英文标题】:Iphone, how do I fix this warning: '-respondsToSelector:' not found in protocol(s)Iphone,我该如何解决这个警告:'-respondsToSelector:' not found in protocol(s) 【发布时间】:2010-09-23 11:44:03 【问题描述】:我收到了这个警告。
'-respondsToSelector:' 在协议中找不到
它出现在下面标有“HERE”的那一行。
- (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;
这是我的完整 h 文件。
#import <UIKit/UIKit.h>
@interface SettingsTableViewController : UITableViewController
NSArray *sectionControllers;
@end
我需要做什么来修复错误?
【问题讨论】:
【参考方案1】:要么让SetsSectionController
继承自NSObject
:
@protocol SetsSectionController <NSObject>
...或转换为id
:
if ([(id) sectionController respondsTo...])
【讨论】:
【参考方案2】:if ([(NSObject *)sectionController respondsToSelector:
@selector(tableView:titleForFooterInSection:)])
【讨论】:
【参考方案3】:有人需要,
SEL selector = NSSelectorFromString(@"tableView:titleForFooterInSection:");
if([sectionController respondsToSelector:selector])
objc_msgSend(sectionController, selector, tableview, section);
注意:不要忘记这一点,#import <objc/message.h>
【讨论】:
以上是关于Iphone,我该如何解决这个警告:'-respondsToSelector:' not found in protocol(s)的主要内容,如果未能解决你的问题,请参考以下文章
我该如何解决这个“警告:mysqli_connect():(HY000/1049):未知数据库”问题?
警告:忽略无效的分发 -ip (c:\python39\lib\site-packages) 我该如何解决这个问题,这是啥意思? [复制]
Xcode 无法获取进程 XXX 的任务。我该如何解决这个问题? (iPhone SDK 4.0)
我的 React 应用程序出现无法修复的高严重性警告,我该如何解决?
PHP 安全测试为 GetHTMLValueString 提供了严重的 Reflected XSS 警告,我该如何解决?