2015-04-23 19 views
0

裏面viewDidLoad中的我得到的JSON用下面的代碼:如何將JSON傳遞給viewDidLoad函數中的函數?

request(.POST, "example.com", parameters: device).response { (request, response, data, error) in 
     var jsonResult = NSJSONSerialization.JSONObjectWithData(data! as! NSData, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary 

     var myJSON = JSON(data:data! as! NSData) 
} 

而在底部我有一個函數answer()

func answer() { 
    if queue+1 <= 3 { 
     var questionBodyText = myJSON["result"][queue]["body"].stringValue 
     var variantAText = myJSON["result"][queue]["var_a"].stringValue 
     var variantBText = myJSON["result"][queue]["var_b"].stringValue 
     var variantCText = myJSON["result"][queue]["var_c"].stringValue 
     var variantDText = myJSON["result"][queue]["var_d"].stringValue 
    } 
} 

但我不能回答使用()的myJSON它打印,那Use of unresolved identifier myJSON錯誤。

所以,我的問題是,如何從answer()函數中'查看'這個myJSON數據並使用它?

+0

可能重複http://stackoverflow.com/questions/26343742/use-of-unresolved -identifier -with-swift) – chirag90

回答

1

myJSON在響應塊中聲明並且不能在此塊之外訪問。在外部聲明一個變量(例如在你的類中)並用你的json數據設置這個變量。

EDIT

聲明等(外部塊):

var myJSON:JSON? 

和在您的請求:

request(.POST, "http://example.com", parameters: device).response { (request, response, data, error) in 
    var jsonResult = NSJSONSerialization.JSONObjectWithData(data! as! NSData, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary 

    myJSON = JSON(data:data! as! NSData) 
} 
+0

我的確嘗試過,像'var json = [Dictionary ]()',但我無法再使用它。我無法將myJSON添加到此字典中。我該怎麼做? –

+0

我對Swift不太熟悉,但看到我的編輯 – ryancrunchi

+0

'不能爲'JSON'類型的值添加下標嗎? 'myJSON?[「result」] [queue] [「body」]。stringValue' line –

1

在ViewController中聲明myJSON作爲一個屬性:

class ViewController { 
    var myJSON:JSON? 
} 

分配va略:

myJSON = JSON(data:data! as! NSData) 

並使用它:

if let j = myJSON { 
    var questionBodyText = j["result"][queue]["body"].stringValue 
} 
[ 「使用未解決的識別符」 與夫特(的
+0

'不能爲類型'JSON?'的值下標嗎?在'myJSON?[「result」] [queue] [「body」]。stringValue'行中有'String''錯誤索引 –

+0

@OrkhanAlizade您使用的是SwiftyJSON嗎? – skyline75489

+0

是的,我正在使用swiftyJSON –