loadNibNamed 方法太慢 - 如何让它更快?
Posted
技术标签:
【中文标题】loadNibNamed 方法太慢 - 如何让它更快?【英文标题】:loadNibName method is too slow - how to make it quicker? 【发布时间】:2011-11-14 14:49:29 【问题描述】:我有一个滚动视图,其中包含大约 40-50 个不同类型的对象。对象的类型是在对象位置的函数中定义的(例如,如果是滚动视图中的第 5 个对象-> 是 Object1,如果它是滚动视图中的第 11 个对象-> 它是 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】:如果您正在为 ios4+ 编程,则可以改用 UINib 类。它将加载缓存的对象并在每次需要时创建一个副本。见this blog post。
【讨论】:
以上是关于loadNibNamed 方法太慢 - 如何让它更快?的主要内容,如果未能解决你的问题,请参考以下文章
使用方法[NSBundle loadNibNamed:xibName owner:[NSApplication sharedApplication]]加载Nib时如何传递参数?