Согласно документации:
Swift автоматически перенаправляет определенные собственные типы чисел, такие как Int и поплавком, чтобы NSNumber.
Он также позволяет передавать значение типа Int, например, в аргумент , ожидающий NSNumber. Обратите внимание, что поскольку NSNumber может содержать различных типов, вы не можете передать его чему-то , ожидая значения Int.
Все следующие типы автоматически мостиком NSNumber:
- Int
- UINT
- Float
- Double
- Bool
Таким образом, вы можете безопасно использовать эти скалярные типы в swift и отбрасывают их до NSNumber
в objc, но не наоборот. NSNumber
может представлять значение поплавка, и вы увидите сообщение об ошибке, если вы нажмете его на Int
в swift.
Правильно, я надеялся, что существует способ «пообещать» Int NSNumber, чтобы был мостик ... – below
Вы могли бы вы «NSInteger», который автоматически соединяется с быстрым, как 'Int'. – Fujia
Но я не вижу проблемы с использованием NSNumber в Swift. Просто вызов integerValue вернет значение, преобразованное в Int – crisisGriega