作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我今天注意到,尽管 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 有点难以理解,尤其是当它有意为新开发人员简化事情时。
最佳答案
是的,这是预期的行为。 Swift 自动将某些原生数字类型(例如 Int
和 Float
)桥接到 NSNumber
。
根据Using Swift with Objective-C book , 以下所有类型都自动桥接到 NSNumber
:
整数
UInt
float
双
bool
关于swift - NSNumberFormatter stringFromNumber 应该能够接受 Swift.Int 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24417824/
我在自定义UITableViewCell子类上具有以下方法: - (void)setPrice:(NSNumber *)price { _price = price; NSNumberForm
在我看来,任何有效的数字也可以表示为String,所以我不知道为什么这个函数返回的是String?而不是字符串。 最佳答案 我最好的猜测是因为遗留支持。这是来自官方文档: The behavior o
我今天注意到,尽管 NSNumberFormatter stringFromNumber 的文档说函数声明采用 NSNumber 作为其参数 ... var playerScore = 3456789
我是一名优秀的程序员,十分优秀!