2009-08-26 9 views
2

voici mon code:tableau CGFloat aide - iPhone dev

CGFloat components[8];//[8];// = { 0.6, 0.6, 0.6, 0.5, 0.4, 0.4, 0.4, 0.5 }; 
if ([appDelegate.graphType isEqualToString:@"response"]) 
{ 
    CGFloat components[8] = { 0.2, 0.2, 0.2, 0.5, 0.5, 0.5, 0.5, 0.5 }; 
} 
else 
{ 
    if ([appDelegate.graphType isEqualToString:@"uptime"]) 
    { 
     CGFloat components[8] = { 0.694, 0.855, 0.961, 0.5, 0.188, 0.588, 0.906, 0.5 }; 
    } 
    else 
    { 
     CGFloat components[8] = { 0.694, 0.855, 0.961, 0.5, 0.188, 0.588, 0.906, 0.5 }; 
    } 
} 

Donc, fondamentalement, je veux dessiner différents gradients en fonction des différents types de graphiques. Cependant, xCode me montre que les composants CGFloat [8] de if/else sont inutilisés et ignorent ses valeurs. Toutes les idées quel est le problème

Répondre

9

Vous déclarez de nouveaux tableaux de composants dans chaque bloc if/else. Vous ne voulez pas faire cela, vous voulez juste assigner les valeurs au tableau de composants déjà déclaré.

Quelque chose comme cela devrait fonctionner:

CGFloat components[8]; 

const CGFloat components1[8] = { 0.2, 0.2, 0.2, 0.5, 0.5, 0.5, 0.5, 0.5 }; 
const CGGloat components2[8] = { 0.694, 0.855, 0.961, 0.5, 0.188, 0.588, 0.906, 0.5 }; 
const CGFloat components3[8] = { 0.694, 0.855, 0.961, 0.5, 0.188, 0.588, 0.906, 0.5 }; 

if ([appDelegate.graphType isEqualToString:@"response"]) 
{ 
    memcpy(components,components1, 8*sizeof(CGFloat)); 
} 
else 
{ 
    if ([appDelegate.graphType isEqualToString:@"uptime"]) 
    { 
      memcpy(components,components2, 8*sizeof(CGFloat)); 
    } 
    else 
    { 
      memcpy(components,components3, 8*sizeof(CGFloat)); 
    } 
} 
+0

Il ne fonctionne pas comme ça, je l'ai essayé avant. Il signale une erreur pour les lignes de composants – Mladen

+0

Non, bien sûr, ce n'était pas le cas. Vous ne pouvez pas initialiser un tableau en dehors de sa déclaration. J'ai modifié la source pour utiliser memcpy, ce qui pourrait mieux fonctionner. –

+0

Cela fonctionne maintenant. Merci beaucoup :) – Mladen