2016-04-20 23 views
1

我已經瀏覽了stackoverflow中的類似主題,但這些解決方案似乎都不適用於我。NSArray&JSON對'subscript'的模糊使用

我有一個通過youtube API獲取視頻的應用程序。以下代碼給出錯誤。

var arrayOfVideos = [Video]() 

// I am getting the error for the following line and it says "Ambiguous use of 'subscript'. 

for video in JSON["items"] as! NSArray { 

    let videoObj = Video() 
    videoObj.videoId = video.valueForKeyPath("snippet.resourceId.videoId") as! String 
    videoObj.videoTitle = video.valueForKeyPath("snippet.title") as! String 
    videoObj.videoDescription = video.valueForKeyPath("snippet.description") as! String 
    videoObj.videoThumbnailUrl = video.valueForKeyPath("snippet.thumbnails.high.url") as! String 


    arrayOfVideos.append(videoObj) 

} 

我也有一個叫Video的類,我定義了Id,標題等等......上面的代碼在這裏引用。

class Video: NSObject { 

    var videoId:String = "" 
    var videoTitle:String = "" 
    var videoDescription:String = "" 
    var videoThumbnailUrl:String = "" 

} 

我試圖通過檢查下面的鏈接/建議來解決它,但它沒有爲我工作。我似乎無法找到缺失的部分。

Ambiguous Use of Subscript in Swift

+1

什麼是JSON對象?告訴我們你是如何創建的。 – Rob

+0

您可以顯示'JSON'變量的定義嗎? –

+0

感謝Rob和George在本案中的關注。我有以下幾行供您參考。我無法發佈完整的代碼作爲評論。我希望這有幫助。 類VideoModal:NSObject的{ 變種videoArray = [視頻]() 如果讓JSON = response.result.value { 打印( 「JSON:\(JSON)」) VAR arrayOfVideos = [視頻]( ) –

回答

1

這裏的問題是幾乎可以肯定的是你的JSON被定義爲一類,可能是一個數組或字典。隨着Xcode 7.1歧義性的實施變得更加平坦,所以你需要明確地將它轉換爲可以由字符串下標的東西。這應該很好地排序:

for video in (JSON as! NSDictionary)["items"] as! NSArray 
+0

我能夠解決您的建議問題。它工作正常。非常感謝您的幫助! –