2015-04-23 20 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 –