OGeek|极客世界-中国程序员成长平台

标题: ios - 为什么 NumberFormatter 的字符串(从 :) return an optional? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:05
标题: ios - 为什么 NumberFormatter 的字符串(从 :) return an optional?

Documentation link

为什么 NumberFormatter 函数 func string(from number: NSNumber) -> String? 返回的是 String? 而不是 字符串NumberFormatter 是否有特定的输入或状态,该函数可以返回 nil?有时我听说这些不太理想的返回类型来自 Objective-C 保留文件,这是其中一种情况吗?



Best Answer-推荐答案


只是为了好玩:这是一个(构建的,非真实世界的)示例,其中 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"是 voidtype encoding, 指针值无关紧要。)

关于ios - 为什么 NumberFormatter 的字符串(从 return an optional?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50067233/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4