2015-11-05 44 views
0

即時通訊相當新的斯威夫特,即時通訊製作與Multipeer連接開始一點點井字遊戲,我遇到了一個問題。 收到我的數據我做了一個「做」塊爲:如何訪問數據塊「做」swift2

 do{ 
      let data = try NSJSONSerialization.JSONObjectWithData(dataToTake, 
      options: NSJSONReadingOptions.AllowFragments) as! NSDictionary 
     }catch let error as NSError?{ 
     print(error) 
     } 

後來,我想從「做」外塊訪問數據,但我不能,因爲外面「做」我不能看數據。誰能幫我?不要在我身上努力,因爲我說我很快就會變得新鮮!謝謝!

+0

如果JSON反序列化失敗,那麼您沒有數據。在這種情況下,你必須先決定你想如何繼續。 –

+0

我明白了,你能給我舉個例子怎麼做嗎?謝謝你的幫助! – pbex

回答

0

您無法訪問do catch塊範圍之外的數據對象。要在該塊之外訪問它,必須在執行該塊之前定義一個var:

var data: AnyObject? 
do { 
    data = try NSJSONSerialization.JSONObjectWithData(dataToTake, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary 
} catch { 
    print(error) 
} 

print(data) 
+0

也感謝您的幫助! – pbex

0

常見錯誤的常見示例。在關閉時,我們可以定義一個具有相同名稱的「本地」變量,並帶有不想要的結果

var j = 1 
var k = 0 
do { 
    var j = 0 
    // ..... 
    j = 2 
    k = j 
} 
print(j,k) // 1 2 
+0

感謝您的幫助和示例!現在我懂了! – pbex