在我的view.designer.cs中,我的网点是由xcode生成的。
启动debug时,我在添加绑定时在我的属性上有一个空引用异常,在下面的代码中,this.SampleText为null。
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
this.AddBindings(
new Dictionary<object, string>()
{
{ this.SampleText, "{'Text':{'Path':'VMText'}}"}
});
}
我注意到Application的输出中有以下错误: “应用程序窗口应该在应用程序启动结束时具有根视图控制器”
我错过了什么?
答案 0 :(得分:0)
听起来你的iOS设置可能会有一个更普遍的问题 - 可能是xcode和MonoTouch之间XIB文件同步的一些问题。
在尝试添加MvvmCross绑定之前,先看看MonoTouch层 - 如果MonoTouch层中的this.SampleText为null,那么在添加MvvmCross绑定代码之前需要先解决它。
MonoTouch软调试器是一个很好的工具,可以帮助调试它 - 使用模拟器的调试周期非常快 - 所以这通常有助于解决这些问题。
从你对这个问题的部分回答,听起来好像你试图在基于对话框的UI中使用XIB - 这可能不会起作用 - 我认为MonoTouch.Dialog总是基于单个表 - 所以它是不要期待XIB(至少,这是我的经验!)
至于“应用程序窗口应该在应用程序启动结束时有一个根视图控制器”,这听起来更像是AppDelegate.cs中的一般问题。或者,它可能是演示者中的问题。您使用的是哪位主持人?
该错误消息本身在StackOverflow上有很多点击 - 例如Applications are expected to have a root view controller at the end of application launch - 但我现在不确定哪一种适合你的情况。
我必须承认iOS和MVVMCross
对我来说一切都不清楚
对于来自C#背景的编码员,我不认为这是不寻常的 - 我认为从Windows上的VS到Mac上的MonoDevelop(带有一点xcode)的跳跃是一个非平凡的飞跃。从WP切换到iOS开发需要花费更多的时间,而不是从WP到Droid - 这与你是否使用MvvmCross无关 - 如果你正在进行MT开发你正在使用本机代码,所以你需要花一些时间了解iOS(根据我的经验/意见!)。
在大多数情况下,我亲自编写了数万行代码,撰写了数百篇博文和stackoverflow答案,并在mvvmcross上展示了10个会话。我在五个不同的操作系统中完成了这个操作,其中四个是我编写的,因为我编写了这些操作系统,所有这些都与平台和工具错误和特性相抗衡。
我将继续尽可能多地发布 - 并继续为“免费”
运营我也鼓励每个用户发布和发布他们的体验。通过这种方式,我希望能够产生和分享知识。对于正在阅读本文的人,使用mvvmcross并学习有关跨平台编码的内容 - 无论好坏 - 请考虑分享这些知识。如需灵感,请查看用户撰写的一些演示文稿和博客文章 - 我尝试在http://slodge.blogspot.co.uk/p/mvvmcross-quicklist.html上列出它们。谢谢:))
此外,在提问时,请指出您正在使用的mvvmcross版本以及您的代码基于哪些样本 - master和vNext之间存在差异,并且随着时间的推移已经有了修复 - 所以发布此信息将帮助我尝试理解和/或复制您看到的错误。
谢谢:)
答案 1 :(得分:0)
我知道这有点旧,但我遇到了同样的问题。
当我在调用ViewDidLoad时尝试访问我的View.designer.cs文件时,我的插座属性为null。
原来我的Visual Studio中的xib文件不再设置为InterfaceDefinition的Build Action。
希望这可以帮助那些偶然发现这个问题的人。