2

64 ビット サポートを有効にして最初のプロジェクトをコンパイルしています。float への暗黙的な変換に関する多くのコンパイラ警告が表示されます。これは、fabsf() を使用して結果を CGFloat (新しい 64 ビット アーキテクチャでは float ではなく double) に代入しているためです。

この質問に対する回答によると:

CGFloat ベースの数学関数?

この問題を解決する必要があり#include <tgmath.h>、おそらくに変更するfabsf必要がありfabsます。これが役に立たないように見えるファイルが少なくとも 1 つあります。それでも警告implicit conversion loses floating-point precision 'double' to 'CGFloat' aka (float). が表示されます: その警告を生成する行は次のとおりです。

CGFloat deltaX = fabs(item.center.x-point.x);

他の誰かがこれに出くわしましたか? どのように解決しましたか?この警告を無効にしたり、大量の型キャストでコードを散らかしたりしたくありません。

4

2 に答える 2