Ответ 1
Int64
достаточно велик, чтобы удерживать временной интервал в несколько миллионов
лет, измеренных в миллисекундах:
let milliSeconds = Int64(someDate.timeIntervalSince1970 * 1000)
let milliSecondsString = String(milliSeconds)
Я хочу иметь целочисленное значение следующего значения с плавающей запятой:
var floatingPointValue = NSDate().timeIntervalSince1970 * 1000
Мне все равно, если целочисленное значение этого числа с плавающей запятой фактически является целым числом или строкой.
Int64
достаточно велик, чтобы удерживать временной интервал в несколько миллионов
лет, измеренных в миллисекундах:
let milliSeconds = Int64(someDate.timeIntervalSince1970 * 1000)
let milliSecondsString = String(milliSeconds)
Int64 достаточно, чтобы сохранить нужное значение
let floatingPointValue = NSDate().timeIntervalSince1970 * 1000
let intValue = Int64(floatingPointValue)
Вы должны использовать Int64
потому что Date().timeIntervalSince1970
возвращает, например, 1561124475.900897 после того, как вы умножите 1000, в результате вы получите 1561124475900. Int для 32-битной арки - до 2147483647.
Например, вы можете столкнуться с этой проблемой на iPhone 5 (32-битная арка), но на 5S (32-битная арка) нет проблем
Узнайте больше здесь