升级后在 Xamarin 中绑定 UIImageView 无效转换

Binding UIImageView invalid cast in Xamarin after upgrade

我最近尝试重新编译一个在较新版本的 Xamarin 中运行的项目。项目编译,但在设备上崩溃并出现无效的强制转换异常。

System.InvalidCastException: 无法从源类型转换为目标类型。

崩溃发生在设计器生成的代码中:

        [MonoTouch.Foundation.Connect("turnOnAnimation")]
    private MonoTouch.UIKit.UIImageView turnOnAnimation {
        get {
            object test = this.GetNativeField ("turnOnAnimation");
            **this.__mt_turnOnAnimation = ((MonoTouch.UIKit.UIImageView)(this.GetNativeField("turnOnAnimation")));**
            return this.__mt_turnOnAnimation;
        }
        set {
            this.__mt_turnOnAnimation = value;
            this.SetNativeField("turnOnAnimation", value);
        }
    }

研究来自 GetNativeField 的 return,我似乎得到了 UIView 而不是 UIImageView:

但是 XIB 中的插座连接到 UIImageView。

据我所知,这段代码在早期版本中运行良好。最近的版本有什么变化还是我应该做些不同的事情?

附加测试显示:

1) 此问题发生在 iPod touch 运行 iOS 版本 7.1.1

2)模拟器没有出现问题运行iOS8.1(任意iOS平台)

3) iPhone 运行 8.1.2

上没有出现问题

4) 将 iPod touch 升级到 iOS 8.1.3 解决了这个问题。

我得出结论,这要么是一个 iOS 错误,要么是当前 Xamarin 工具与旧版本 iOS 之间的不兼容。