私は64ビットで動作するようにアプリを変換しています。アップルのドキュメントによると、CGFloat
タイプは、32ビットの場合はfloat
、64ビットの場合はdouble
です。CGFloat on 32-対64ビットのエンコード/デコード
もしそうなら、その値のエンコード/デコードをどのように扱うのですか?たとえば、CGFloat
からNSNumber
を作成する場合、NSNumberの-numberWithFloat:
または-numberWithDouble:
メソッドを使用する必要がありますか?同じ質問がNSCoder
とNSKeyedArchiver
の方法-encodeFloat:forKey:
と-encodeDouble:forKey:
に適用されます。
-numberWithFloat:
が32ビットで呼び出され、-numberWithDouble:
が64ビットで呼び出されるように条件付きマクロを記述する必要はありますか?
64ビットバージョンのアプリケーションを実行しているユーザーが、これらの値が2倍にエンコードされたファイルを保存し、ファイルが32ビットシステムでオープン/アーカイブ解除されるとどうなりますか?
CGFloats
を使用する私のアプリのすべてのメソッドはdouble
の精度レベルを必要とすることはまずありませんので、これについても気にする必要がありますか?
多くのありがとう、それは多くのものを明確にします。 –