我做這個簡單的程序:如何製作UITableView重新制作您製作的類別?
-(void) vPrintAllSubviews
{
[self printAllSubviewsWithDepth:0];
while (false);
}
-(void) printAllSubviewsWithDepth:(NSUInteger) depth
{
UIView * theView= self;
[@"" stringByPaddingToLength:depth withString: @"abc" startingAtIndex:0];
NSString * result =[NSString stringWithFormat:@"%@%@",[@"" stringByPaddingToLength:depth withString: @" " startingAtIndex:0], theView];
PO(result);
NSArray * subViews = self.subviews;
for (UIView * subView in subViews) {
[subView printAllSubviewsWithDepth:depth +1];
}
}
當我打電話,我得到:
-[UITableView vPrintAllSubviews]: unrecognized selector sent to instance 0x1faa8c00
但UITableView的是的UIView的子類,該類別適用於所有的UIView。事實上,這個類別在以前更復雜的項目中工作得很好。
那麼,爲什麼UITableView不知道它可以訪問vPrintAllSubviews?
它甚至沒有包含任何編譯錯誤。
如果我看構建階段,我看到這張圖片暗示只有3個文件正在編譯。嗯......在我上一個項目中,我不記得需要添加.m文件來編譯列表。
你確定,你導入它,它可用於uiview? –
是的。實際上,這是自動完成功能可以幫助我鍵入選擇器。 –
@AnoopVaidya實現不在標題中,導入它們不相關。我懷疑它就是缺少的'-ObjC -load_all'鏈接器標誌。 – 2013-03-29 07:25:01