代码之家  ›  专栏  ›  技术社区  ›  reshefm

使用多个NIB文件会造成性能损失吗?

  •  1
  • reshefm  · 技术社区  · 14 年前

    在一个NIB文件中放几个视图更好吗?

    谢谢,Reshef

    1 回复  |  直到 14 年前
        1
  •  2
  •   kovpas    14 年前

    不久前我做了这样的测试:

    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。当我把这个文件分割成单独的细胞,比如mycell1.xib,mycell2.xib,等等,我得到了一个巨大的性能提升(比如从1.5-2秒加载“5-cells-in-one-file”文件到0.1秒加载iPhone2G上每个文件一个细胞的文件)。

    这可能会让您感到惊讶,但是缺少性能的原因是在loadnibnamed调用上,而不是“for”循环。

    所以,如果您要加载这些视图,我建议使用单独的文件。