iOS swift5.0 NSNumber 转 Sting 遇到的问题(Swift中NSNumber转String)

当遇到编译器错误'Could not cast value of type '__NSCFNumber' to 'NSString'时,可以通过使用NSNumber的stringValue属性进行转换。例如,可以先尝试安全解包并转换,或者使用强制解包和字符串插值。此外,也可以利用NumberFormatter类来格式化数字为字符串。在确保数据类型正确的情况下,使用forced unwrapping可以简化转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译器报错:Could not cast value of type ‘__NSCFNumber’ (0x…) to ‘NSString’ (0x…).

解决方式:
The value is an NSNumber, not an NSString. You can use stringValue to convert it:

if let a = d["a"] as? NSNumber {
    let aString = a.stringValue
    println(aString) // -1
}

If you’re sure it’s there, you can use forced unwrapping and string interpolation:

let a = d["a"]! as! NSNumber
let aString = "\(a)"

这样子也是直接nsnumber转nsstring了

2.另外的解决方式:

let num: Double = 123456789
let formattor = NumberFormatter()
formattor.numberStyle = .decimal
let str = formattor.string(from: NSNumber(value: num))
print(str)

要用到NumberFormatter这个类,相关属性如下:

open var numberStyle: NumberFormatter.Style

其他问题可以佳窝魏鑫互相学习iOS技术探讨:lixiaowu1129 一起对iOS技术更深入学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值