Справка по массиву CGFloat - iPhone dev - PullRequest
2 голосов
/ 26 августа 2009

вот мой код:

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

Итак, я хочу нарисовать разные градиенты на основе разных типов графиков. Тем не менее, xCode показывает мне, что компоненты CGFloat [8] из операторов if / else не используются и игнорируют его значения. Любые идеи, в чем проблема

1 Ответ

9 голосов
/ 26 августа 2009

Вы объявляете новые массивы компонентов в каждом блоке if / else.Вы не хотите этого делать, вы просто хотите присвоить значения уже объявленному массиву компонентов.

Примерно так должно работать:

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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...