5

在Objective-C中,UITableViewControllerDelegate等委托是协议,所以我可以在一个类中实现多个。

在 Monotouch 中,所有 iOS 代理都公开为 C# 类。这使得在单个控制器类上实现两个委托成为不可能,因为 C#(正确地,IMO)只允许单一继承。

委托声明是否作为 C# 接口存在于 Monotouch 框架中的某处?(这将是我们可以从 Objective-C 中获得的最接近协议的协议)

如果我需要在 Monotouch / C# 中的一个类上实现多个委托,我有什么选择?

4

1 回答 1

6

你可以用它WeakDelegate来做到这一点,但你必须让所有的Export装饰都正确。此处底部附近的弱代表文档。是一个UITableViewSource弱代表的例子。

我不确定为什么 Xamarin 必须使用类而不是 Obj-C 协议的接口,但我猜这是他们必须解决的限制。

于 2013-04-28T20:23:17.730 回答