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

Posted

技术标签:

【中文标题】Monotouch - [NSConcreteValue doubleValue]:发送到实例的无法识别的选择器【英文标题】:Monotouch - [NSConcreteValue doubleValue]: unrecognized selector sent to instance 【发布时间】:2012-04-02 16:38:40 【问题描述】:

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

【问题讨论】:

我在这里找到了几个可能的解决方案:***.com/questions/7773628/…***.com/questions/7804404/… 堆栈跟踪对大多数人来说可能看起来没有用(当您看到它时,这是因为很多事情/检查失败了(但它对某些人可能非常有用。请编辑您的问题,向我们展示您拥有的相关代码和堆栈跟踪。使用这些我们应该能够找到问题所在。 【参考方案1】:

Rolf 的链接揭示了正确答案。 更改:

CABasicAnimation scale_animation = CABasicAnimation.FromKeyPath("transform.scale");

到:

CABasicAnimation scale_animation = CABasicAnimation.FromKeyPath("transform");

谢谢!

【讨论】:

简单而完美:D. 对我来说是“transform.translation.x”到“transform” @xindong 的回答通过演示导致崩溃的原因更好地回答了这个问题。【参考方案2】:

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

错误的例子:

     animation.fromValue = [NSValue valueWithCGSize:CGSizeMake(0.5, 0.5)];
     animation.toValue = [NSValue valueWithCGSize:CGSizeMake(1.2, 1.2)];

正确的例子:

     animation.fromValue = @(0.5);
     animation.toValue = @(1.2);

【讨论】:

以上是关于Monotouch - [NSConcreteValue doubleValue]:发送到实例的无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章

Monotouch:了解委托机制模式

如何在 DialogViewController (Monotouch.Dialog) 上设置背景颜色

Monotouch 找不到 AudioFileOpenURL

MonoTouch:StoryBoarding - 手动转场?

MonoTouch 中的 ViewForZoomingInScrollView

MonoTouch 4.0 使用模拟器抛出 ReflectionTypeLoadException