Метод loadNibName слишком медленный - как сделать это быстрее?
У меня есть вид прокрутки, который содержит около 40-50 объектов разных типов. Типы объекта определяются в зависимости от местоположения объекта (например, если 5-й объект в представлении прокрутки -> Объект 1, если это 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. Он будет загружать кэшированные объекты и создавать копии каждый раз, когда это необходимо. Смотрите этот пост в блоге.