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