2011-11-14 5 views
4

J'ai une vue de défilement, qui contient environ 40-50 objets de différents types. Les types de l'objet sont définis en fonction de l'emplacement de l'objet (par exemple si le 5ème objet dans la vue défilement-> est Object1, s'il s'agit du 11ème objet dans la vue défilement -> c'est Object2 type etc.). Avec un car je vérifiais chaque élément d'un tableau, puis les mettre dans la vue de défilement, avec cette méthode:La méthode loadNibName est trop lente - comment la rendre plus rapide?

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

Mon problème est, qu'il se charge très lentement. Que puis-je faire pour le rendre plus rapide?

Répondre

4

Si vous programmez pour IOS4 +, vous pouvez utiliser la classe UINib à la place. Il va charger un objet en cache et en créer une copie chaque fois que nécessaire. Voir this blog post.

+0

Merci, ça marche: D – MMMM

Questions connexes