loadNibNamed方法太慢了 - 如何让它更快?

时间:2011-11-14 14:49:30

标签: objective-c uiscrollview nib loadnibnamed

我有一个滚动视图,其中包含大约40-50个不同类型的对象。对象的类型是根据对象的位置定义的(例如,如果是滚动视图中的第5个对象 - >是Object1,如果它是滚动视图中的第11个对象 - > gt;它是Object2类型等)。   使用for我将验证数组的每个元素,然后使用此方法将它们放入滚动视图中:

for (int i = 0; i < [myArray count]; i++){

 if (i < 10){
        NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"Class1" owner:nil options:nil];
        for (NSObject *obj in xib){
            if ([obj isKindOfClass:[Class1 class]]){
                classObject = (Class1 *)obj;
                break;
            }
        }
 } else if (i > 10 && i < 20){
        NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"Class2" owner:nil options:nil];
        for (NSObject *obj in xib){
            if ([obj isKindOfClass:[Class2 class]]){
                classObject = (Class2 *)obj;
                break;
            }
        }
      }
[scrollview addSubview:classObject];
}

我的问题是,加载速度非常慢。我该怎么做才能更快?

1 个答案:

答案 0 :(得分:4)

如果您正在为IOS4 +编程,则可以使用UINib类。它将加载缓存的对象并在每次需要时创建一个副本。请参阅this blog post