Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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
C# 不符合键值编码(Monotouch和iOS 6)_C#_Ios_Xamarin.ios_Interface Builder_Ios6 - Fatal编程技术网

C# 不符合键值编码(Monotouch和iOS 6)

C# 不符合键值编码(Monotouch和iOS 6),c#,ios,xamarin.ios,interface-builder,ios6,C#,Ios,Xamarin.ios,Interface Builder,Ios6,我刚将Monotouch升级到6,现在我的应用程序无法启动。它以前工作没有任何问题。现在它在Main.cs文件中抛出一个异常(如下所列)。我已经查看了有关Xamarin的故障排除提示,但它没有解决问题。我重新布置了nib文件,删除并重新配置了我的插座,并创建了一个全新的nib,看看这是否能解决问题。还有其他人有什么想法吗 MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown. Name: NSUnknownK

我刚将Monotouch升级到6,现在我的应用程序无法启动。它以前工作没有任何问题。现在它在Main.cs文件中抛出一个异常(如下所列)。我已经查看了有关Xamarin的故障排除提示,但它没有解决问题。我重新布置了nib文件,删除并重新配置了我的插座,并创建了一个全新的nib,看看这是否能解决问题。还有其他人有什么想法吗

MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown.  Name: NSUnknownKeyException Reason: [<UIApplication 0xc84bb10> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key btnNewAccount.
   at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
   at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
   at Pokr.Application.Main (System.String[] args) [0x00000] in /Users/James/Projects/App/Main.cs:17
Main.cs中的代码(其中代码中断):

以下是我调用ViewController的AppDelegate中的代码段:

        var rootNavigationController = new UINavigationController();

        LoginView loginScreen = new LoginView();
        rootNavigationController.PushViewController(loginScreen, false);

        this.window.RootViewController = rootNavigationController;

        //blank function fires so the getter will init the singleton.
        Singleton.Instance.Initialize();

        // make the window visible
        window.MakeKeyAndVisible ();


        return true;

它告诉您原因:
[setValue:forUndefinedKey:
。请注意,它并没有说:
[setValue:forUndefinedKey:
。现在,您需要弄清楚是什么试图将消息
-setbtnewaccount:
发送到UIApplication的实例


代理似乎在某个地方设置错误。

当您在代码中初始化了
ViewController
,但也从XIB文件初始化了
ViewController
时,会发生此错误

如果将“主界面”值设置为在代码中创建的
ViewController
,则可能发生这种情况。若要解决此问题,请将此值设为空,则不会自动初始化任何
ViewController

还要检查您的pInfo文件,看看是否有主接口集

感谢@BartXamarin用户提供此提示:


右键单击Xamarin Studio(第4版)中的项目,选择
“选项”
,然后在
“iOS项目”
(部分
“iPad部署信息”
)。清除下拉列表
“主界面”
,这应该可以解决问题。

我在从按钮创建插座时遇到过类似的问题,因此删除了按钮并从按钮创建插座。XCode和Xamarin之间的同步并没有完全以正确的方式完成

我的修复方法是删除按钮,然后手动搜索并删除设计器文件中的所有引用


希望这有帮助……

即使在最近构建的Xamarin Studio(5.9.5)中,我也遇到了这个问题。“与Xcode同步”选项已灰显,但显然我在Tamarin中的ViewController xib文件与Xcode不同步


修复与Hutjepower提到的相同。我在Xamarin Studio中搜索了被破坏的引用,在Xamarin中打开了xib文件(右键单击该文件并使用源代码编辑器),然后删除了通过Xcode删除的控件。这解决了这个问题。

我在Xamarin Studio 5.10.1中也遇到了这个问题;我最终发现,如果我使用一个文本编辑器来编辑我的故事板文件,并删除其中的所有内容

<connections></connections>


它为我解决了这个问题。

为添加了一些代码,这只是设计器生成的代码。但是,它应该让您了解设计师正在同步什么。正如我所说,它在升级之前就起作用了。所以,我很好奇这是否是一个单点触摸/开发错误。我不确定代理是如何设置错误的,因为它是由designer/mono develop指定的。但我确实注意到了这一点,我很困惑为什么它在应用程序的根目录中,而不是在控制器中。也许iOS 6调用的功能发生了变化?这就解决了它!非常感谢。正是在我的应用程序设置中定义了一个主界面。谢谢!这里也一样:右键单击Xamarin Studio(第4版)中的项目,选择“选项”,然后在“iOS项目”(部分“iPad部署信息”)下,我必须清除下拉菜单“主界面”,这就解决了问题。
        var rootNavigationController = new UINavigationController();

        LoginView loginScreen = new LoginView();
        rootNavigationController.PushViewController(loginScreen, false);

        this.window.RootViewController = rootNavigationController;

        //blank function fires so the getter will init the singleton.
        Singleton.Instance.Initialize();

        // make the window visible
        window.MakeKeyAndVisible ();


        return true;
<connections></connections>