Я конвертирую приложение для работы в 64-битной версии. В документации Apple говорится, что тип CGFloat
- это float
на 32-битной и double
на 64-битной.
Если это так, как вы обрабатываете кодирование / декодирование значения? Например, если я создаю NSNumber
из CGFloat
, я должен использовать метод -numberWithFloat:
или -numberWithDouble:
NSNumber? Тот же вопрос относится к NSCoder
и NSKeyedArchiver
методам -encodeFloat:forKey:
и -encodeDouble:forKey:
.
Должен ли я написать условный макрос, чтобы -numberWithFloat:
вызывался в 32-разрядной версии, а -numberWithDouble:
- в 64-разрядной?
Что произойдет, если пользователь, работающий с 64-разрядной версией приложения, сохранит файл, в котором эти значения закодированы как двойные, а файл открыт / разархивирован в 32-разрядной системе?
Все методы в моем приложении, использующие CGFloats
, вряд ли когда-либо будут нуждаться в уровне точности double
, так что я должен даже беспокоиться об этом?