升级后绑定UIImageView在Xamarin中无效

时间:2015-02-15 04:49:35

标签: c# ios binding xamarin.ios xamarin

我最近尝试重新编译一个在较新版本的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的返回,我似乎得到了一个UIView而不是UIImageView:

Watch Value

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

Outlets

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

1 个答案:

答案 0 :(得分:0)

其他测试显示:

1)运行iOS版本7.1.1的iPod touch上出现此问题

2)运行iOS 8.1(任何iOS平台)的模拟器中没有出现此问题

3)在运行8.1.2的iPhone上没有出现此问题

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

我得出结论,这可能是iOS错误或当前Xamarin工具与旧版iOS之间的不兼容。