我想从Apple的网站上获取“LightTable”示例代码(https://developer.apple.com/library/mac/#samplecode/LightTable/Introduction/Intro.html)。它编译得很好但是将图像拖到正在运行的程序窗口会导致在控制台中记录此错误消息:
** Canceling drag because exception 'CALayerInvalidGeometry' (reason 'CALayer position contains NaN: [nan nan]') was raised during a dragging session
没有任何反应。
我正在使用Xcode 4.6.1和OSX 10.8.3问题似乎出现在“LTMaskLayer”类中。特别是setFrame函数,但经过一些修补后,我仍然无法让应用程序正常工作。
看起来像一个很好的应用程序,有很多东西需要学习,而不仅仅是触摸手势,我真的很想让它工作。非常感谢任何可以提供帮助的人。
答案 0 :(得分:1)
你是对的,这个错误好像在-[LTMaskLayer setFrame:]
。
这个实验对我有用。变化:
if (!CGSizeEqualToSize(oldFrame.size, frame.size)) {
到
if (!CGSizeEqualToSize(oldFrame.size, frame.size) && !CGSizeEqualToSize(oldFrame.size, CGSizeZero)) {
完全有可能有一个更好的解决方案,但这应该让你更远一点。