2014-09-02 60 views
1

代碼訪問內部詞典:異常在斯威夫特

{ 
    "methodName": "LOGIN", 
    "errorCode": -1, 
    "responseMsg": "Login success", 
    "response": { 
     "userId": 28871, 
     "firstName": "Test", 
     "lastName": "Dentist", 
     "contactId": 28720 
    } 
} 

這就是我得到來自NSURL連接響應。

if response != ""{ 
      var resMsg: String = dataDic["responseMsg"] as String 

      if resMsg == "Login success"{ 
       var resDic: NSDictionary = dataDic["response"] as NSDictionary 
       var userId: String = resDic["userId"] as String 
      } 
     } 

當我嘗試訪問用戶id它給了異常,因爲Exc_Break點exception.It工作正常在目標C.How做我修改代碼來訪問內部dictionary.any幫助將appreciated.thanks提前

+0

你確定'resDic'不是'nil'? – 2014-09-02 07:57:00

+0

是的,它不是無 – user3823935 2014-09-02 08:41:43

回答

1

你應該嘗試

var userId: NSNumber = resDic["userId"] as NSNumber 

正如你可以看到dataDic關鍵userID的值是一個數字。由於dataDic可以包含字符串,數字和字典,它的類型很可能被推斷爲[String:NSObject]。因此,你應該投爲NSNumber,而不是快速本機類型string

+0

謝謝。它解決了我的問題 – user3823935 2014-09-02 09:06:47

+0

@ user3823935無後顧之憂。不用謝 – 2014-09-02 09:07:25