簡體   English   中英

Swift:在展開可選值NSObject時意外發現nil

[英]Swift: unexpectedly found nil while unwrapping an Optional value, NSObject

我試圖在IOS應用程序中使用Swift 2和Xcode 7,以避免在fatal error unexpectedly found nil while unwrapping an Optional value鏈應用於FriendShip NSObject fatal error unexpectedly found nil while unwrapping an Optional value但是我不知道哪種方法是正確的。

下面顯示的FriendShip類在friend屬性中接收到一個nil值,但是編譯器fatal error unexpectedly found nil while unwrapping an Optional value給了我一個fatal error unexpectedly found nil while unwrapping an Optional value

class FriendShip: NSObject{

  var id: String?
  var friend: User?
  var date: NSDate?

  init(dictionary: [String: AnyObject]){

    id        = dictionary["id"] as? String
    friend    = User(dictionary: (dictionary["friend"] as! [String: AnyObject]))
    date      = dictionary["date"] as? NSDate

  }
} 

但是,如果我將friend屬性設置為可選,編譯器會給我一個EXC_BAD_INSTRUCTION錯誤:

class FriendShip: NSObject{

  var id: String?
  var friend: User?
  var date: NSDate?

  init(dictionary: [String: AnyObject]){

    id        = dictionary["id"] as? String
    friend    = User(dictionary: (dictionary["friend"] as? [String: AnyObject])!)
    date      = dictionary["date"] as? NSDate

  }
}  

我該怎么解決?

您仍在此處展開​​可選項:

friend    = User(dictionary: (dictionary["friend"] as? [String: AnyObject])!)

即:

(dictionary["friend"] as? [String: AnyObject])!

而是應該類似:

if let friendDictionary = dictionary["friend"] as? [String: AnyObject] {
    friend = User(dictionary:friendDictionary)
}

暫無
暫無

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

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