У меня есть вопрос о безопасном или правильном преобразовании NSString
в такие типы, как CGFloat
и NSInteger
, учитывая, что это просто типы оболочек, которые Apple создала для использования различных примитивов в зависимости от определенных факторов (например, NSInteger
- от typedef
до int
на 32-разрядных архитектурах и long
на 64-разрядных архитектурах.
Например, я знаю, что могу использовать что-то вроде [ someString intValue ]
или [ someString longValue ]
, но как вместо этого сказать, что я хочу, чтобы someString
стал NSInteger
, позволяя выбирать точность базового примитива? компилятором? Сказать что-то вроде NSInteger integer = [ someString intValue ]
приведет к потере данных, если someString
был создан из NSInteger
в 64-битной системе, верно? Как лучше всего справиться с этой ситуацией?