Monotouch - [NSConcreteValue doubleValue]:发送到实例的无法识别的选择器

Bra*_*don 7 iphone xamarin.ios ios

这似乎是一个有点模糊的问题 - 但在我的UI中点击我得到一个'无法识别的选择器发送到实例'.堆栈跟踪真的不是很有帮助.一般来说 - 在Monodevelop中调试它的最佳方法是什么?任何建议都会非常有帮助.

Bra*_*don 17

罗尔夫的链接揭示了正确的答案.更改:

CABasicAnimation scale_animation = CABasicAnimation.FromKeyPath("transform.scale");
Run Code Online (Sandbox Code Playgroud)

至:

CABasicAnimation scale_animation = CABasicAnimation.FromKeyPath("transform");
Run Code Online (Sandbox Code Playgroud)

谢谢!


小智 7

第一个答案不是一个好的解决方案。transform.scale 应该是double 类型,如果你给CABasicAnimation赋值fromValue或者toValue是NSValue 类型,它不能转换成double 值,所以App 崩溃了。

错误示例:

     animation.fromValue = [NSValue valueWithCGSize:CGSizeMake(0.5, 0.5)];
     animation.toValue = [NSValue valueWithCGSize:CGSizeMake(1.2, 1.2)];
Run Code Online (Sandbox Code Playgroud)

正确的例子:

     animation.fromValue = @(0.5);
     animation.toValue = @(1.2);
Run Code Online (Sandbox Code Playgroud)