2

我有一个示例项目,我在其中创建了一个库存表视图,最终将使用一系列自定义表视图单元格。表视图的 nib 包含定义了自定义控制器 (TrackingViewController) 的视图,该控制器本身包含一个表视图作为子视图。笔尖还包含一个自定义 UITableViewCell,我有一天会在表格中使用它。但是现在自定义单元格没有在任何地方引用或使用;它只存在于笔尖内。

当应用程序尝试引用自定义视图控制器的视图(即 TrackingViewController 实例的 View 属性)时,应用程序崩溃并显示消息“System.Exception: Selector 从objective-c 在类型为 Empty1.SendDataRowCell ( 0xCFE4900) 已被 GC 处理”。我没有实例化可以调用任何选择器的 SendDataRowCell 类的任何实例,所以我不理解这条消息。我没有将对任何自定义单元对象的引用传递给 Objective-C,因为我从未创建过一个。我什至还没有为表设置 UITableViewSource 实例。

这是我在界面生成器中的 nib 文件的屏幕截图:http: //i.imgur.com/wb5zDlp.png

这是一个包含示例项目的所有代码的要点,在该示例项目中,我能够在每次应用程序启动时始终如一地重现问题。请注意,这不是一个功能齐全的应用程序,也不打算这样做;它只是为了证明这个问题而存在。 https://gist.github.com/cscibri/5437899

我在 Windows 7 x64 上的 Visual Studio 2012 中构建这个项目,我使用的是 Xamarin Studio 版本 4.0.4(构建 2),单点触控版本是 6.2.3.0(8d98f5e)

4

1 回答 1

3

您需要在您的 SendDataRowCell 类中创建一个采用 IntPtr 的构造函数:

SendDataRowCell (IntPtr handle)
    : base (handle)
{
}

这是 iOS 实例化 SendDataRowCell 实例时将使用的构造函数。

于 2013-04-22T22:43:55.773 回答