我只是從YouTube API獲取數據並在tableView上顯示它。在Swift 3升級之前它工作正常,但現在它給了我一個錯誤。未捕獲的異常'NSUnknownKeyException'
我能夠成功打印JSON,但不能顯示標題,說明和imageView。
當我點擊videoTableView,我得到一個從「videoObj」開始的錯誤。
錯誤消息:
這個類是「不密鑰值用於鍵片段兼容編碼-。
let videoObj = Video()
videoObj.videoId = Video.value(forKeyPath: "snippet.resourceId.videoId") as! String
videoObj.videoTitle = Video.value(forKeyPath: "snippet.title") as! String
videoObj.videoDescription = Video.value(forKeyPath: "snippet.description") as! String
videoObj.videoThumbnailUrl = Video.value(forKeyPath: "snippet.thumbnails.maxres.url") as! String
arrayOfVideos.append(videoObj)
if self.delegate != nil {
self.delegate!.dataReady()
}
我看過類似的問題,其中一些建議,以檢查故事板丟失連接或類的名稱,但不能複製他們在我自己的項目。
一些人還建議清理項目,從模擬器和設備中刪除應用程序,並擺脫派生的數據,但沒有一個似乎是我的解決方案。
在Swift 3升級之前,行如下;
let videoObj = Video()
videoObj.videoId = video.valueForKeyPath("snippet.resourceId.videoId") as! String
什麼是'Video'?該錯誤表明它沒有名爲'snippet'的屬性。 – rmaddy
爲什麼Swift 3代碼調用'... = Video.value ...'而舊的Swift代碼調用'... = video.value ...'?請注意'視頻'與'視頻'。 – rmaddy
@matt這與故事板或其他問題無關。這是一個實際的KVC問題。 – rmaddy