我目前正在尝试为Sparrow 1.3创建一个monotouch绑定库。到目前为止一切正常,除了我不能从绑定的objc类派生,如:
public class GameStage : SPStage {
public GameStage() : base() { }
public GameStage(float width, float height) : base(width, height) { }
}
SPStage
是libSparrow.a
中定义的类。
SPStage
似乎绑定正确,因为以下代码适用于我的示例monotouch项目:
private SPView sparrowView;
...
RectangleF frame = UIScreen.MainScreen.Bounds;
SPStage stage = new SPStage(frame.Size.Width, frame.Size.Height);
stage.Color = 0x0000ff;
sparrowView.Stage = stage;
但是,如果我尝试使用GameStage
:
GameStage game = new GameStage(frame.Size.Width, frame.Size.Height);
game.Color = 0x0000ff;
sparrowView.Stage = game;
应用程序崩溃,没有错误或堆栈跟踪。预期结果应为蓝屏。
重现我在绑定代码中检查的错误以及git hub的示例。你可以从这里克隆它:
git@github.com:goosefx/sparrow-monotouch.git
如果有人可以帮助我的话,我真的很高兴。我真的很困惑这个问题。
谢谢!
更新
在我写完这个问题之后,我第一次看到了类似的问题: Monotouch derived class from a native class
从mtouch参数列表中删除/ e解决了我的问题。很糟糕,MonoDevelop不支持抑制/ e参数。
很糟糕,我不能在8小时之前回答我自己的问题。
答案 0 :(得分:1)
问题我/ e开关MonoDevelop传递给btouch。无法通过UI禁用此功能。目前只有manuel编译有帮助。在此处查看更多详细信息:https://bugzilla.xamarin.com/show_bug.cgi?id=3234