如何将SWIFT可选nsnumber转换为可选的int? (我的代码的任何改进?)

将可选号码转换为迅速的可选int是什么最短/清洁的方式?

有更好的方法吗? (见下文)

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

回答 5

  1. 赞同 21

    I think most easiest way is

    var orderNumberInt = orderNum?.intValue
    

    Also,你可以这样做

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

    Leo
    本文是Int32的初始名称Leo Dabus
    谢谢人 - 你很难选择哪个是正确的:)但是我在这里特别是“var ornallnumberint = ordernum?.integervalue”所以我选择这个,希望好的GREG
    fyi,此方法已更名为integerValueintValue斯威夫特4。OWENDELYBAD
  2. 赞同 5

    let number:NSNumber? = NSNumber(integer: 125)
    
    
    if let integerValue = number?.integerValue {
        print(integerValue)
    }
    
    let integerValue = number?.integerValue ?? 0
    

    Leo Dabus
  3. 赞同 1

    orderNumberInt = orderNum?.intValue
    

    This is the best way to do it in Swift.

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

    Ankit Rathi
  4. 赞同 0

    如果令求解,您可以使用

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

    Jintin
  5. 赞同 0

    我使用这个简单的转换:

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

    nsnumber可选int?

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

    optional int?到nsnumber.

    oiNum = 19
    nsNum = oiNum as NSNumber?
    

    P.S.我是迅速的新手,所以如果出错,请随意纠正:-)

    Abduliam rehmanius