标签: c# cocoa-touch xamarin.ios
在Objective-C中,诸如UITableViewControllerDelegate之类的委托是协议,因此我可以在一个类中实现多个。
在Monotouch中,所有iOS代表都作为C#类公开。这使得无法在单个控制器类上实现两个委托,因为C#(正确地说,IMO)只允许单继承。
委托声明是否在Monotouch框架中的某处作为C#接口存在? (这将是我们可以从Objective-C获得最接近的协议)
如果我需要在Monotouch / C#中的类上实现多个委托,我有哪些选择?
答案 0 :(得分:6)
您可以使用WeakDelegate执行此操作,但必须使所有Export装饰正确无误。关于底部here附近的弱代表的文档。 Here是UITableViewSource弱代表的示例。
WeakDelegate
Export
UITableViewSource
我不确定为什么Xamarin必须使用类而不是Obj-C协议的接口,但我猜这是他们必须解决的限制。