Objective-C中不支持重载方法
我知道Objective-C不支持方法重载。但是,如何理解以下与“tableView”同名的委托方法?对我来说,这些方法似乎是超载的,但我不确定 要使视图控制器指示它是UITableView委托,它必须实现UITableViewDelegate协议。以下是要在视图控制器中实现的常见委托方法:Objective-C中不支持重载方法,objective-c,Objective C,我知道Objective-C不支持方法重载。但是,如何理解以下与“tableView”同名的委托方法?对我来说,这些方法似乎是超载的,但我不确定 要使视图控制器指示它是UITableView委托,它必须实现UITableViewDelegate协议。以下是要在视图控制器中实现的常见委托方法: tableView:heightForRowAtIndexPath: tableView:willDisplayCell:forRowAtIndexPath: tableView:didSelectRowA
tableView:heightForRowAtIndexPath:
tableView:willDisplayCell:forRowAtIndexPath:
tableView:didSelectRowAtIndexPath:
tableView:didDeselectRowAtIndexPath:
tableView:commitEditingStyle:forRowAtIndexPath:
tableView:canEditRowAtIndexPath:
您列出的所有方法都不同,因为选择器名称包括所有部分,而不仅仅是第一个冒号“
:
”之前的部分
下面是一个在目标C中尝试方法重载的示例(编译器将拒绝):
请注意,如果存在同名的类方法和实例方法变体,则允许“重载”方法:
- addSomething:(NSObject *) toView:(UIView *)view
+ addSomething:(NSObject *) toView:(UIView *)view // this is OK
显然,你需要一个很好的理由来做一些可能会让人困惑的事情
另见这个问题:
您列出的所有方法都不同,因为选择器名称包括所有部分,而不仅仅是第一个冒号“
:
”之前的部分
下面是一个在目标C中尝试方法重载的示例(编译器将拒绝):
请注意,如果存在同名的类方法和实例方法变体,则允许“重载”方法:
- addSomething:(NSObject *) toView:(UIView *)view
+ addSomething:(NSObject *) toView:(UIView *)view // this is OK
显然,你需要一个很好的理由来做一些可能会让人困惑的事情
另见这个问题:
这些都是不同的。整个字符串,包括“:”和下面的所有内容都是方法/选择器名称的一部分。它们都是不同的。整个字符串,包括“:”和下面的所有内容都是方法/选择器名称的一部分。请接受我的回答,谢谢。点击答案左边的勾号,它应该变成绿色。请接受我的答案,谢谢我。点击答案左边的勾号,它应该变成绿色。