46

非常に大きなグラフィック Mac アプリを使用していますが、10.9 GM のコンソールで次のようなメッセージを大量に受け取ります。

<Error>: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API. This is a serious error and contributes to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

[NSApp nextEventMatchingMask: untilDate inMode: dequeue] を呼び出した後にこれらのメッセージがデバッガーに表示されることに気付きましたが、理由は他の場所にあると思います。しかし、Cocoa Graphics を使用する場所が多すぎます。10.9 より前は、この種のメッセージを受け取りませんでした。

NaN が CoreGraphics API に渡されている場所を検出する方法は?

コンソールでのこのエラーのスクリーンショット

4

5 に答える 5

123

いろいろ調べた結果、Xcode で "CGPostError" にシンボリック ブレークポイントを設定すると、スタック トレースが得られることがわかりました。

于 2013-11-08T04:00:43.150 に答える
7

将来の使用のために NSPopover を愚かにも保持していたときに、このエラーが発生していました。

それpopover.showRelativeToRect(_:)はあなたがする必要があるすべてのように思えます、そしてあなたはそれを忘れることができます.

于 2016-03-02T09:18:48.100 に答える
1

問題が見つかりました。ある時点でゼロで除算すると、行列に NaN 要素を持つ NSAffineTransform が発生します。何らかの理由で、コンパイラと OS は 10.9 より前にこの状況をパスしました。

于 2013-10-04T20:03:34.887 に答える