Написание функции, которая принимает NSString и плавает - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь сделать приложение для iPad.

В одной из функций я должен возвращать значение в зависимости от ввода строки.

Вот код:

float myFunction(float t, NSString * Color){

    if ([Color isEqual:@"blue"])
       return t*100;

    else if ([Color isEqual:@"red"])
       return t*2;

    else
       return t;
}

Но где-то моя программа делает что-то не так. Так как я не получаю номер, который я ожидаю. Возможно ли, что этот код является отсутствующей ссылкой?

Я не получаю ошибок или предупреждений.

1 Ответ

1 голос
/ 23 февраля 2012

вместо isEqual следует использовать isEqualToString

и изменить Color на color

Попробуйте, если это имеет значение (если нет, то проблема заключается еще в том,code):

float myFunction(float t, NSString * color){

    if ([color isEqualToString:@"blue"])
       return t*100.0;

    else if ([color isEqualToString:@"red"])
       return t*2.0;

    else
       return t;
}

Если вы хотите, чтобы ваша функция выглядела больше как метод obj-c, используйте:

-(CGFloat) myFunctionForT:(CGFloat)t andColor:(NSString *)color {

        if ([color isEqualToString:@"blue"])
           return t*100.0;

        else if ([color isEqualToString:@"red"])
           return t*2.0;

        else
           return t;
}

Основная причина использования color вместо Colorи 100.0 вместо 100 в том, что немного больше дисциплины в кодировании экономит вам часы и часы отладки.

...