2016-07-15 4 views
0

Я пишу рамки в Objective-C, и цель заключается в том, что она должна быть радостью использовать и в Swift.Objective-C API: Может ли NSNumber стать Int в Swift?

Одним из моих свойств является NNNumber с нулевым значением. Есть ли способ связать это с дополнительным Int, когда API используется в Swift?

ответ

1

Согласно документации:

Swift автоматически перенаправляет определенные собственные типы чисел, такие как Int и поплавком, чтобы NSNumber.

Он также позволяет передавать значение типа Int, например, в аргумент , ожидающий NSNumber. Обратите внимание, что поскольку NSNumber может содержать различных типов, вы не можете передать его чему-то , ожидая значения Int.

Все следующие типы автоматически мостиком NSNumber:

  • Int
  • UINT
  • Float
  • Double
  • Bool

Таким образом, вы можете безопасно использовать эти скалярные типы в swift и отбрасывают их до NSNumber в objc, но не наоборот. NSNumber может представлять значение поплавка, и вы увидите сообщение об ошибке, если вы нажмете его на Int в swift.

+0

Правильно, я надеялся, что существует способ «пообещать» Int NSNumber, чтобы был мостик ... – below

+0

Вы могли бы вы «NSInteger», который автоматически соединяется с быстрым, как 'Int'. – Fujia

+0

Но я не вижу проблемы с использованием NSNumber в Swift. Просто вызов integerValue вернет значение, преобразованное в Int – crisisGriega

 Смежные вопросы

  • Нет связанных вопросов^_^