Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 如何映射包含MonoTouch上的协议实现的返回值类?_Xamarin.ios - Fatal编程技术网

Xamarin.ios 如何映射包含MonoTouch上的协议实现的返回值类?

Xamarin.ios 如何映射包含MonoTouch上的协议实现的返回值类?,xamarin.ios,Xamarin.ios,我试图将一个没有直接类的返回类型映射到MonoTouch中的某个对象(因为我不确定等价物是什么) 例如,如果在btouch中,我想绑定结果类型UIView,定义如下: -(UIView*)添加(Thing*)内容 我成功地做到了这一点: [导出(“添加:”)] UIView AddThing(事物的名称) 但我无法获得协议扩展。如果我创建一个中间类型,比如UIViewProtocol,比如: //@接口UIViewProtocolThing:UIView{ [基本类型(类型化(UIView))]

我试图将一个没有直接类的返回类型映射到MonoTouch中的某个对象(因为我不确定等价物是什么)

例如,如果在btouch中,我想绑定结果类型UIView,定义如下:

-(UIView*)添加(Thing*)内容

我成功地做到了这一点:

[导出(“添加:”)] UIView AddThing(事物的名称)

但我无法获得协议扩展。如果我创建一个中间类型,比如UIViewProtocol,比如:

//@接口UIViewProtocolThing:UIView{ [基本类型(类型化(UIView))] 接口UIViewProtocolThing:ProtocolThing{ ... }

我可以使用UIViewProtocolThing,但由于它为UIViewProtocolThing创建构造函数,而这些构造函数不存在,因此返回此类型失败


有人对此有想法吗?

我想你可以在C端解决这个问题。在绑定中使用
UIView

然后像这样创建一个类:

public class ProtocolView : UIView
{
    //Fill out all the constructors
    public ProtocolView() { }

    public ProtocolView(IntPtr handle) : base (handle) { }

    [Export("myExportForProtocolThing:")
    public virtual void MyExportForProtocolThing() { }
}
确保实现协议的所有方法

如果愿意,您甚至可以将这个新类放入绑定项目中