我轉換一個應用程序以64位的工作進行解碼CGFloat的。蘋果文檔狀態下CGFloat
類型是32位的一個float
和在64位一double
。編碼/在32位和64位
如果是這樣,你如何處理價值的編碼/解碼?舉例來說,如果從CGFloat
創建NSNumber
,我應該使用的NSNumber的-numberWithFloat:
或-numberWithDouble:
方法?同樣的問題適用於NSCoder
和NSKeyedArchiver
方法-encodeFloat:forKey:
和-encodeDouble:forKey:
。
是否必須編寫條件宏,以便在32位上調用-numberWithFloat:
,在64位上調用-numberWithDouble:
?
如果運行的應用程序的64位版本的用戶保存這些值在那裏被編碼爲雙打文件和文件打開/未歸檔的32位系統上會發生什麼?
所有在我的應用程序,使用CGFloats
不可能永遠方法需要double
的精度水平,所以我應該甚至擔心這個?
非常感謝,這說明了很多東西。 – 2009-11-17 22:05:02