NSNumberFormatter stringFromNumber应该可以使用Swift.Int吗?

时间:2014-06-25 20:20:39

标签: swift nsnumber nsnumberformatter

我今天注意到,尽管NSNumberFormatter stringFromNumber的文档说函数声明以NSNumber为参数...

var playerScore = 3456789
let displayScore: String = numberFormatter.stringFromNumber(NSNumber.numberWithInteger(playerScore))

只需提供Swift.Int ...

即可正常工作
var playerScore = 3456789
let displayScore: String = numberFormatter.stringFromNumber(playerScore)

这是编译器只是聪明吗?或者不应该工作的东西。像这样的东西使Swift有时难以遵循,特别是当它的目的是为新开发人员简化事物时。

1 个答案:

答案 0 :(得分:2)

是的,这是预期的行为。 Swift会自动将某些原生数字类型(例如IntFloat)连接到NSNumber

根据Using Swift with Objective-C book,所有以下类型都会自动桥接到NSNumber

  • Int
  • UInt
  • Float
  • Double
  • Bool