Kyl*_*yle 1 protocols interface objective-c
我正在尝试写一些与此类似的东西(对不起,如果样本不是100%正确,我只是写下我的头顶):
interface Handler
{
void doSomething ( );
}
otherclass
{
void othermethod ( Handler handler )
{
// Handler do something
}
}
Run Code Online (Sandbox Code Playgroud)
所以在ObjectiveC中我做了以下内容:
@protocol Handler
- (void) doSomething;
@end
// Other class
- (void) othermethod: (Handler*) handler
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
但是我在othermethod声明行上得到以下错误:在出现之前预期')'.
我知道这里没有语法错误(我可以用NSObject*替换Handler*并且错误消失),所以很明显我在这种情况下使用协议是不正确的.
有人能指出我创建C#界面的正确方法吗?
你想使用这样的类型:
id <Handler> obj
Run Code Online (Sandbox Code Playgroud)
这意味着"任何id
实现Handler
协议的对象(类型)".协议介于大于/小于标志之间.您还可以使用类似的声明NSObject <Handler> *obj
,这意味着"任何类型的对象NSObject
或实现Handler
协议的子类".
您还可以声明一个实现多个协议的对象,如下所示:
id <Handler, OtherHandler> obj
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
766 次 |
最近记录: |