2012-05-02 75 views
1

在我的表視圖的cellForRowAtIndexPath爲什麼我的UITableViewCell沒有被鑄造?

MenuItemCell *cell = (MenuItemCell *)[[[NSBundle mainBundle] loadNibNamed:@"ResultCell" owner:nil options:nil] objectAtIndex:0]; 

之前,你告訴我,不使用廈門國際銀行:我有它的細胞需要尋找相同的多個表視圖。使用xib似乎是實現這一目標的最佳方式。

問題中的ResultCell xib是「擁有」MenuItemCellMenuItemCellUITableViewCell的另一個子類的子類。

這裏的問題:我把一個斷點直接小區分配行之後,這裏是我的LLDB結果:

(lldb) po [cell class] 
(id) $3 = 0x00b6b5fc UITableViewCell 

爲什麼我的手機一個UITableViewCell而不是MenuItemCell? (或者,也許它是和po不是正確的方法來解決這個問題?)

回答

3

你可能沒有告訴Xcode/Interface Builder從XIB實例化MenuItemCell,所以它使用默認的實現,它是UITableViewCell 。請注意,只有編譯一個對象纔會使編譯器相信它是指定類的一個實例;它確實是而不是將對象神奇地轉換爲類的一個實例。 (換句話說,這是一個短時間表達式,不是運行時表達式)。

+0

ResultCell.xib顯示「MenuItemCell」中的身份檢查的自定義類領域時,在選擇了「文件的所有者」文檔大綱。在文檔大綱中選擇單元格時它是否必須顯示相同的內容? –

+0

是的,是的。謝謝! –

+0

很酷。順便說一句,我不使用Xcode,所以我不知道如何設置這些棘手的屬性(我總是創建一切代碼,反正我不在Mac上) – 2012-05-03 03:53:45

0

您可以隨時使用isKindOfClass方法檢查某個對象是否屬於某個類。

[細胞isKindOfClass:[MenuItemCell類]]

此外,像H2CO3說。您可能忘記將所有者類設置爲MenuItemCell。

1

下面是關於如何設置主階級的NIB文件的截圖

enter image description here

相關問題