swift2 如何将Swift可选的NSNumber转换为可选的Int?(对我的代码有任何改进吗?)

6vl6ewon  于 2022-11-06  发布在  Swift
关注(0)|答案(5)|浏览(256)

在Swift中,将可选数字转换为可选整数的最短/最简洁的方法是什么?
还有比这更好的方法吗?(见下文)

let orderNumberInt : Int?
if event.orderNum != nil {
    orderNumberInt = Int(event.orderNum!)
} else {
    orderNumberInt = nil
}
bfrts1fy

bfrts1fy1#

我认为最简单方法是

var orderNumberInt = orderNum?.intValue

还有,你可以这样做

var orderNum:NSNumber? = NSNumber(int: 12)
var orderNumberInt:Int? = (orderNum != nil) ? Int(orderNum!) : nil
print(orderNumberInt)
mxg2im7a

mxg2im7a2#

let number:NSNumber? = NSNumber(integer: 125)

if let integerValue = number?.integerValue {
    print(integerValue)
}

let integerValue = number?.integerValue ?? 0
jmo0nnb3

jmo0nnb33#

orderNumberInt = orderNum?.intValue

这是在Swift中执行此操作的最佳方式。
参考:https://developer.apple.com/documentation/foundation/nsnumber/1412554-intvalue

ds97pgxw

ds97pgxw4#

您可以使用if let语法

var number: NSNumber?
    if let value = number as? Int {
        // get int value
    } else {

    }
xienkqul

xienkqul5#

我使用的是这个简单的转换:

// lets consider following vars
var nsNum: NSNumber?
var oiNum: Int? // oi - optional Int

将NSNumber转换为可选Int?

nsNum = NSNumber.init(value: 18)
oiNum = nsNum as? Int

可选的将Int?转换为NSNumber

oiNum = 19
nsNum = oiNum as NSNumber?

我是斯威夫特的新手,所以如果有什么不对的地方,请随时纠正:-)

相关问题