2015-06-02 51 views
-6

嗨進出口新的Xcode和編程得到一個錯誤的Xcode 6.3.2的UITableViewCell

IM上做出滑出菜單

https://www.youtube.com/watch?v=8EFfPT3UeWs

我不能得到它的工作,我下載試用本教程發現該完成的項目文件在這裏: https://www.dropbox.com/s/7eku9pp06u75q6u/SlideoutMenuSwift-Full.zip?dl=0

我不能得到它的工作

var cell = tableView.dequeueReusableCellWithIdentifier(TableArray[indexPath.row], forIndexPath: indexPath) as UITableViewCell 

想出錯誤

anyobject是無法轉換爲UITableViewCell您的意思是用「作爲!」強迫低調?

任何幫助,將不勝感激

林100%它是與我的版本的Xcode的,所以希望一些簡單

歡呼

特拉維斯

+2

由於雨燕1.2,你需要用顯式轉換爲'!'(因爲錯誤狀態)。 –

+1

xcode告訴你如何解決這個問題。你花了這麼多時間來發布這個,而不是自己搞清楚。不要誤解我的意思,但是你應該花更多時間用語言和xcode。 – alexdd55

回答

0

這是因爲斯威夫特自演示寫入以來,語法發生了變化。您可以簡單地通過遵循Xcode爲您提供的錯誤消息中的建議來修復此問題。

1

歡迎來到魔幻世界編程:-)

由於bjornorri寫道,對於as語法在雨燕1.2改變。

如果您查看方法dequeueReusableCellWithIdentifier(可找到here)的文檔,您會看到它返回AnyObject意思是任何真正的。

因此......您必須將其轉換爲UITableViewCell,您已使用as關鍵字進行處理。

當您從更抽象的東西轉換爲更具體的東西時,就像您在此嘗試從AnyObject轉到UITableViewCell時所做的那樣,這被稱爲downcast。

沮喪的問題是,你不能確定它是否會實際工作。當然,你說你希望這個對象是一個UITableViewCell(在這種情況下,它會起作用),但是不能保證,也許原始值不是UITableViewCell

因此,從Swift 1.2開始,as的行爲發生了變化,因此您必須添加!迫使沮喪。這意味着你告訴編譯器繼續前進,只是向下轉換對象,你知道你在做什麼。如果有效,那麼一切都很好,但如果不行,你的應用程序就會崩潰。

您可以在Ray Wenderlich閱讀更多關於它在這裏(我建議你書籤如果您尚未:-))

+0

令人敬畏的歡呼聲。我有這個網站書標記。當我沮喪時,它工作,但另一部分停止工作,我的隊友說不要沮喪,但他沒有很快的經驗,所以我想問。乾杯傢伙的 – Travis