二 Cocoa编程Protocol and Message用法
1.protocol用法
protocol顾名思义,就是联系两个东西的桥梁。翻译成中文就叫协议,protocol在实际编程中应用的比较少,但是cocoa的API中却大量用到了它。例如:cocoa编程中,如果你在UI上使用了Table View控件,最常用的一个方法numberOfRowsInTableView。它返回将要在Table View上显示条目的个数,但是这个Cocoa的API怎么使用哪?程序员直接调用么?显然不是,因为apple工程师写这个方法的时候,他们怎么知道程序员将来要在Table View上显示几行啊!那么下面我们就拿这个例子分析protocol到底是怎么工作的。
numberOfRowsInTableView这个方法虽然是cocoa提供的,但是它要由程序员实现。其实这个方法就相当于java中的接口,在c++中一般用纯虚函数定义这种方法。这样程序员就可以根据实际情况改变函数的实现方法。虽说思想相同,但是cocoa实现的这种方法和java,c++却大不一样。下面就拿java的实现和此方法对比吧,首先如果java定义一个接口,那么如果想用这个接口,程序员的类就必须继承这个接口。这样接口中的方法也就必须全部实现,相当于方法都暴露给程序员了。而cocoa实现的原理是定义一个协议NSTableViewDelegetProtocol,在这个协议中定义