[英]Why Isn't My UITextField Wrapper Being Displayed In UITableViewCell?
[英]Why isn't my UITableViewCell being casted?
在我的表視圖中我有cellForRowAtIndexPath
MenuItemCell *cell = (MenuItemCell *)[[[NSBundle mainBundle] loadNibNamed:@"ResultCell" owner:nil options:nil] objectAtIndex:0];
在你告訴我不要使用xib之前:我有多個表視圖,其單元格需要看起來相同。 使用xib似乎是實現這一目標的最佳方法。
有問題的ResultCell xib由MenuItemCell
“擁有”。 MenuItemCell
是UITableViewCell
的另一個子類的子類。
這是問題所在:我在單元格分配行之后直接放置了一個斷點,這是我的lldb結果:
(lldb) po [cell class]
(id) $3 = 0x00b6b5fc UITableViewCell
為什么我的單元格是UITableViewCell
而不是MenuItemCell
? (或者也許它和po
不是正確的方法來解決這個問題?)
您可能沒有告訴Xcode / Interface Builder從XIB實例化MenuItemCell,因此它使用默認實現,即UITableViewCell。 請注意,轉換對象只會使編譯器認為它是指定類的實例; 它不會奇跡般地變換對象到類的一個實例。 (換句話說,它是一個copmile-time表達式,而不是運行時表達式。)
這是關於如何設置NIB文件的所有者類的屏幕截圖
您始終可以使用isKindOfClass方法檢查對象是否屬於某個類。
[cell isKindOfClass:[MenuItemCell class]]
另外,像H2CO3說的那樣。 您可能忘記將所有者類設置為MenuItemCell。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.