簡體   English   中英

如何將 Swift 可選的 NSNumber 轉換為可選的 Int? (我的代碼有什么改進嗎?)

[英]How to convert Swift optional NSNumber to optional Int? (any improvements on my code?)

在 Swift 中將 Optional Number 轉換為 Optional Int 的最短/最簡潔的方法是什么?

還有比這更好的方法嗎? (見下文)

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

我認為最簡單的方法是

var orderNumberInt = orderNum?.intValue

另外,你可以這樣做

var orderNum:NSNumber? = NSNumber(int: 12)
var orderNumberInt:Int? = (orderNum != nil) ? Int(orderNum!) : nil
print(orderNumberInt)
let number:NSNumber? = NSNumber(integer: 125)


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

let integerValue = number?.integerValue ?? 0
orderNumberInt = orderNum?.intValue

這是在 Swift 中做到這一點的最佳方式。

參考: https : //developer.apple.com/documentation/foundation/nsnumber/1412554-intvalue

您可以使用 if let 語法

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

    }

我正在使用這個簡單的轉換:

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

NSNumber 到可選的 Int?

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

可選的? 到 NSNumber

oiNum = 19
nsNum = oiNum as NSNumber?

ps我是swift的新手,所以如果有什么問題,請隨時糾正:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM