gpt4 book ai didi

xamarin.ios - 无法使用 Xamarin 和 MvvmCross 从 XIB UI 创建 View

转载 作者:行者123 更新时间:2023-12-02 01:05:18 25 4
gpt4 key购买 nike

我有一个 Xamarin.iOS 应用程序。它是前段时间写的,使用 XIB 定义用户界面。我想添加新 View (及其 Controller ),但每次我添加新页面并启动应用程序时,我都会收到以下错误:

Failed to marshal the Objective-C object 0x17a37a70 (type: LoginView). Could not find an existing managed instance for this object, nor was it possible to create a new managed instance (because the type 'Touch.LoginView' does not have a constructor that takes one IntPtr argument).
Additional information:
Selector: viewDidLoad
Method: Touch.LoginView:ViewDidLoad ()

如果我通过复制现有 View 并重命名它来创建新 View ,那么更有趣的是 - 一切正常。我试图弄清楚有什么区别,但我唯一发现的是以下内容: enter image description here enter image description here

如果您注意到添加了额外的层次结构。这是什么级别以及为什么我的应用程序在新创建的 View 中继续失败(如果我想要新 View ,我必须复制现有的 View )。

最佳答案

这种错误消息通常会让人非常痛苦。就您而言,您很幸运,因为有一个非常简单的解决方法。使用 xib 或 Storyboard文件时,您希望在 Controller 中包含以下内容:

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

您看到的错误消息的一般解释:

Such issues are, 99% of the time, related to a managed instance with no reference. At some point the GC will collect it and it will crash whenever some native code tries to callback into the (now freed) managed instance.

关于xamarin.ios - 无法使用 Xamarin 和 MvvmCross 从 XIB UI 创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com