Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么我会得到一个“;在'之前分析错误@';代币;当我尝试构建这个简单的XCode项目时?_Objective C_Xcode_Macos_Accessor - Fatal编程技术网

Objective c 为什么我会得到一个“;在'之前分析错误@';代币;当我尝试构建这个简单的XCode项目时?

Objective c 为什么我会得到一个“;在'之前分析错误@';代币;当我尝试构建这个简单的XCode项目时?,objective-c,xcode,macos,accessor,Objective C,Xcode,Macos,Accessor,完全的新手问题。我正在从Kochan的书中学习Objective-C。当我尝试构建以下非常简单的项目时,我总是得到一个 “@”标记前的分析错误 参考@属性int分子、分母语句 以下是Fraction.h文件: #import <Foundation/Foundation.h> @interface Fraction : NSObject { int numerator; int denominator; } @property int numerator, den

完全的新手问题。我正在从Kochan的书中学习Objective-C。当我尝试构建以下非常简单的项目时,我总是得到一个

“@”标记前的分析错误

参考
@属性int分子、分母语句

以下是Fraction.h文件:

#import <Foundation/Foundation.h>

@interface Fraction : NSObject
{
    int numerator;
    int denominator;
}

@property int numerator, denominator;

-(void) print;
-(void) setTo: (int) n over: (int) d;
-(double) convertToNum;

@end
非常感谢您能帮助我理解为什么会出现解析错误。

你好,Scolfax 欢迎 看来你的问题出在 @属性int分子、分母;和
NSLog(@“%i/%i”,分子,分母)

我在Objective-C2.0上发现了这一点(但有趣的是,这并不是在Kochan的书中):“所有为Mac OS X开发的Objective-C应用程序,利用[上述]Objective-C2.0的改进,与10.5(Leopard)之前的所有操作系统都不兼容。”。谢谢大家。

这对我来说绝对不错。您使用的是Xcode的古老版本吗?或者您是为OS X 10.4编译的?您是从网站或PDF复制并粘贴代码,还是使用从internet下载的源文件?我以前在非标准的“空白”字符上遇到过麻烦,这些字符愚弄了编译器。是的,我使用的是一个“古老”的版本:OSX10.4.11和XCode 2.5!这就是问题所在吗?我认为Tiger上没有
@property
。Obj-C2.0 Leopard及以上不是吗?太棒了!请考虑花一点时间来补充这个解释作为答案并标记它被接受,这样这个问题不会出现在搜索中作为“未回答”。
#import "Fraction.h"

@implementation Fraction

@synthesize numerator, denominator;

-(void) print
{
    NSLog(@"%i/%i", numerator, denominator);
}
-(void) setTo: (int) n over: (int) d
{
    numerator = n;
    denominator = d;
}
-(double) convertToNum
{
    if (denominator != 0)
        return (double) numerator/denominator;
    else
        return 1.0;
}

@end