views:

25

answers:

1

Is it better to put several views in one nib file instead?

Thanks, Reshef

+2  A: 

Some time ago I performed test like this:

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;
        }
    }
}
.....   

I had several cells in one file - MyCells.xib. And I got a HUGE (like from 1.5 - 2 seconds for loading "5-cells-in-one-file" file to 0.1 seconds to load a file with one cell per file on iPhone 2G) performance boost, when I split this file to a separate cells like MyCell1.xib, MyCell2.xib etc.

It could surprise you, but the lack of a performance was on a loadNibNamed invocation, not a "for" cycle.

So, I'd suggest to use separate files if you are going to load these views oftenly.

kovpas