使用许多nib文件会有性能损失吗?

时间:2010-10-04 09:29:14

标签: iphone interface-builder

将几个视图放在一个nib文件中会更好吗?

谢谢,Reshef

1 个答案:

答案 0 :(得分:2)

前段时间我进行了这样的测试:

cellForRowAtIndexPath_method:
....
if (cell == nil) {
    NSArray *topLevelObjects = [[NSBundle mainBundle]
                                loadNibNamed:@"MyCell"
                                owner:nil options:nil];
    for ( id currObject in topLevelObjects ) {
        if ( [currObject isKindOfClass:[MyCell class]] 
            && [[currObject reuseIdentifier] isEqualToString:MyCellIdentifier] ) {
            cell = (MyCell *) currObject;
        }
    }
}
.....   

我在一个文件中有几个单元格 - MyCells.xib。而且,当我分割这个文件时,我得到了一个巨大的(例如从1.5到2秒加载“5个单元在一个文件”文件到0.1秒加载文件,在iPhone 2G上每个文件一个单元格)性能提升到一个单独的单元格,如MyCell1.xib,MyCell2.xib等。

它可能让您感到惊讶,但缺少性能是在loadNibNamed调用上,而不是“for”循环。

因此,如果您要经常加载这些视图,我建议使用单独的文件。