delegate和protocol
protocol和delegate完全不是一回事,放在一起说,只是因为我们经常在同一个头文件里看到这两个word。
protocol和java里interface的概念类似,是Objective-C语法的一部分。
定义protocol如下
id<XXXProtocol>
表达的意思。
无论具体的类是什么,它还有其它什么方法,只要它conform to这个protocol,
就说明它可以被传给UITableView,作为它的delegate。
那么Apple为了让我们知道这个protocol是delegate需要conform的protocol,
它就把XXXProtocol改成了UITableViewDelegate
这样我们看到protocol的名字里有Delegate,就知道这个protocol里的函数是用来做自定义(Customization)的了。
?
?
http://haoxiang.org/2011/08/ios-delegate-and-protocol/