超级简单的程序不起作用

时间:2009-12-30 17:48:02

标签: objective-c xcode macos

我正在编写“在Objective c 2.0中编程”一书,我不明白为什么这个程序不起作用。基本上我需要建立一个程序来将华氏温度值转换为细胞值。

我想只是简单地解决它没有对象而只是使用一个直接的程序方法,无论如何我遇到的问题是我定义的变量值代表华氏度或者celcius值正在出现随机的。

这是我的代码:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    float  fahrenheit;
    float  celciusConverted;
    fahrenheit = 27.0;
    celciusConverted = ( fahrenheit - 32 ) / 1.8 ;
    NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius") , fahrenheit, celciusConverted;
    [pool drain];
    return 0;
}

2 个答案:

答案 0 :(得分:5)

NSLog语句中的右括号是错误的。它应该在;

之前

你拥有的是

NSLog(@"... %f %f ..."), arg1, arg2;

编译器似乎不够聪明,看不到%f都没有相应的参数,这是NSLog()等可变函数的常见缺陷。在右括号之后,逗号运算符启动,表达式arg1和arg2什么都不做。

答案 1 :(得分:3)

函数的参数放在括号内。

NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius", fahrenheit, celciusConverted);