所以我试图围绕Objctive-C接口,代理和协议.所以我有一个问题:
委托是否必须在单独的文件中,或者它是否是您班级中定义的方法?
协议就像java接口吗?这是我理解它的方式,如果你使用这个协议它基本上让你实现方法.
我仍然对界面感到困惑.我很确定它们与java中的接口没有任何相似之处.也许它只是一个将在类中实现的变量声明.
Dan*_*iel 22
委托协议需要这样定义
@protocol
//methods
@end
Run Code Online (Sandbox Code Playgroud)
它可以放在任何.h类中,你只需要在你打算使用它时导入它.
协议不像java接口,协议是允许两个类一起工作的适配器.基本上它说,如果你希望A类向你发送有关其状态和动作的消息,这些是它将调用它必须实现的委托的方法.它不像一个接口,因为一个接口说如果你想要继承这个类,你必须实现这些方法,协议说如果你想与这个类进行交互,你必须实现这些方法,所以它有些不同.
Oli*_*ler 13
委托人的意思是在另一个对象做某事时得到通知.例如,您的一个对象想要知道窗口正在关闭,因此您将其注册为窗口的委托并实现该windowWillClose:方法.NSWindow适当地调用它.因此委托方法通常在另一个类中定义.在某一点上,它允许您扩展类的功能而无需对其进行子类化.
(编辑:见Daniel关于协议的答案.)
该@interface是类的声明,这里的成员变量和方法被列出..h如果您需要使用该类,它位于您导入的位置.对于方法的代码坐在@implementation中.m的文件.在Java中它不同,该.java文件有两个目的.
| 归档时间: |
|
| 查看次数: |
8445 次 |
| 最近记录: |