Objective-C协议/接口?

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#界面的正确方法吗?

mip*_*adi 9

你想使用这样的类型:

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)