如何制作UITableView识别你制作的类别?

时间:2013-03-29 07:20:05

标签: objective-c uitableview uiview categories

我制作了这个简单的程序:

-(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文件来编译列表。

enter image description here

1 个答案:

答案 0 :(得分:1)

您必须将实施文件包含在构建目标中。

您可能从其他项目中复制了资源,而忘记在导入对话框中选中复选标记Add to Target