编写一个接受NSString和浮点数的函数

时间:2012-02-23 14:44:59

标签: objective-c function nsstring floating-point

我正在尝试做一个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 个答案:

答案 0 :(得分:1)

而不是isEqual您应该使用isEqualToString

并将Color更改为color

尝试这是否有所不同(如果不是问题出现在代码中):

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代替Color100.0而不是100的主要原因是编码方面的更多规则可以节省您数小时的调试时间。