2014-12-21 70 views
-2

我在Xcode storyboard中有一個單元,其中有一個在屬性中設置的標識符和類。NSStringFromClass是否返回標識符?

在我在別人的GitHub的倉庫看代碼,做類似的事情,以我的應用程序,它具有:

let cell = tableView.dequeueReusableCellWithIdentifier(NSStringFromClass(myCellClass), forIndexPath: indexPath) as myCellClass 

文檔說「返回一個類以字符串形式的名稱。」

那麼我可以將NSStringFromClass(myCellClass)替換爲我在故事板屬性中設置的"myidentifier"

我得到,儘管它可能是無關緊要的錯誤是:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier MyApp.myCellClass - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 
+0

您是否閱讀過錯誤信息? –

回答

1
let cell = tableView.dequeueReusableCellWithIdentifier(
    NSStringFromClass(myCellClass), 
    forIndexPath: indexPath) as myCellClass 

有趣的想法。但是,該代碼的工作原理僅在於程序員手動輸入了單元類的名稱作爲故事板中的單元標識符。本質上,這兩件事沒有任何關係。

+0

謝謝你。以下是164和171-172行的實際實現:https://github.com/acani/Chats/blob/master/Chats/Chats/ChatViewController.swift – user83039

+1

好的,但我相信我已經回答了這個問題。除非這個類名也是標識符,否則你不能在這個時候傳遞'NSStringFromClass(myCellClass)'。但它可能不是。 – matt

+0

任何想法,爲什麼我的版本,而是使用一個字符串,調用構造函數'所需的init(編碼器aDecoder:NSCoder)'和他的版本調用其他構造函數:'覆蓋init(風格:UITableViewCellStyle,reuseIdentifier:String?)' – user83039

相關問題