Documentation link
为什么 NumberFormatter 函数 func string(from number: NSNumber) -> String? 返回的是 String? 而不是 字符串 ? NumberFormatter 是否有特定的输入或状态,该函数可以返回 nil?有时我听说这些不太理想的返回类型来自 Objective-C 保留文件,这是其中一种情况吗?
Best Answer-推荐答案 strong>
只是为了好玩:这是一个(构建的,非真实世界的)示例,其中
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/
|