为什么 NumberFormatter
函数 func string(from number: NSNumber) -> String?
返回的是 String?
而不是 字符串
? NumberFormatter
是否有特定的输入或状态,该函数可以返回 nil?有时我听说这些不太理想的返回类型来自 Objective-C 保留文件,这是其中一种情况吗?
只是为了好玩:这是一个(构建的,非真实世界的)示例,其中
string(from
实际上返回 nil
:
let num = NSNumber(bytes: UnsafeRawPointer(bitPattern: 1)!, objCType: "v")
print(num) // <>
let fmt = NumberFormatter()
fmt.numberStyle = .decimal
let str = fmt.string(from: num)
print(str as Any) // nil
原因是这个num
不代表数字:它是被创建的
使用 NSValue
(从它继承)初始化程序
init(bytesbjCType
具有表示 void
的值。 ("v"是 void
的 type encoding,
指针值无关紧要。)
关于ios - 为什么 NumberFormatter 的字符串(从 return an optional?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50067233/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |