[英]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.