2010-03-26 4 views
0

Je veux faire quelque chose comme ça:XCode: Comment adresser les variables dynamiques?

  for (v=1;v=150;v++) { 
      for (h=1; h=250;v++) { 
      tile_0%i_0%i.image = [UIImage imageWithData:tmp_content_of_tile]; //1st %i = v; 2nd %i = h 
} 
} 

Dans le% i insérer la valeur actuelle de « v » ou « h »? C'est possible? Comment ça s'appelle?

Salutations!

+0

A quoi ressemble l'entrée de votre méthode? Pourquoi vos tuiles s'appellent tile_1_1, tile_1_2 ... D'où viennent-elles? Si vous les nommez comme ça, ne le faites pas. Utilisez un tableau comme ma réponse suggère. – Sebastian

Répondre

1

Je pense que ce que vous voulez il y a un tableau ou un dictionnaire. Voir NSMutableArray et NSMutableDictionary. Mieux encore, cependant, il suffit d'utiliser un bon vieux tableau 2D, comme dans les domaines suivants:

 
// Allocate 2D array and fill with contents 
UIImage*** imgs = (UIImage***) calloc(sizeof(UIImage**),150); 
for (int v = 0; v < 150; v++){ 
    imgs[v] = (UIImage**) calloc(sizeof(UIImage*),250); 
    for (int u = 0; u < 250; u++){ 
     imgs[v][u] = // initialize entry 
    } 
} 

// Using elements 
UIImage* img = imgs[dim1_idx][dim2_idx]; 

// Freeing the array 
for (int v = 0; v < 150; v++){ 
    for (int u = 0; u < 250; u++){ 
     [ imgs[v][u] release ]; 
    } 
    free(imgs[v]); 
} 
free(imgs); 
+0

À quoi servent les 3 ***? –

+0

un pointeur vers un pointeur vers un pointeur ... C'est à dire une liste d'une liste de pointeurs vers UIImages ... – Goz

+0

@Markus, en Objective-C, tout doit être un objet pointeur, donc les éléments du tableau sont de tapez UIImage *. Ensuite, puisqu'il s'agit d'un tableau 2D, vous devez ajouter le ** pour en faire un tableau 2D. –

3

Il est appelé un tableau, qui en C/C++ de base ressemblerait à ceci:

Tile tile[150][250]; 
for (int v=0;v<150;v++) { 
    for (int h=0; h<250;v++) { 
     tile[v][h].image = [UIImage imageWithData:tmp_content_of_tile]; 
    } 
} 

également jetez un oeil à la syntaxe de la boucle for.

+0

+1 - drôle et instructif! – Eimantas

+0

Le problème est que parfois le "0" avant les valeurs v et h ne doit pas être remplacé et le soulignement doit être là. Je dois utiliser une syntaxe stricte pour obtenir et paramétrer les images dans UIIMageViews car les tuiles sont générées par une autre société dont les tuiles sont utilisées dans une visionneuse Flash. La syntaxe des tuiles est comme dans mon 1er post ... –

+0

tuile de type TILE? –

Questions connexes