我正在使用 Stephen Kochan 编写的 Objective-C 第 4 版编程自学 Objective-C。作为初学者,我还不了解如何调试,即使我将书中的代码复制并粘贴到 Xcode 中,我也会遇到错误。这是我从书中获得的无法编译的代码示例:
#import <Foundation/Foundation.h>
//---- @interface section ----
@interface Fraction: NSObject
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
@end
//---- @implementation section ----
@implementation Fraction {
int numerator;
int denominator;
}
-(void) print {
NSLog (@"%i/%i", numerator, denominator);
}
-(void) setNumerator: (int) n {
numerator = n;
}
-(void) setDenominator: (int) d {
denominator = d;
}
@end
//---- program section ----
int main (int argc, char * argv[]) {
@autoreleasepool {
Fraction *myFraction;
// Create an instance of a Fraction
myFraction = [Fraction alloc]; myFraction = [myFraction init];
// Set fraction to 1/3
[myFraction setNumerator: 1]; [myFraction setDenominator: 3];
// Display the fraction using the print method
NSLog (@"The value of myFraction is:");
[myFraction print];
}
return 0;
}
我得到的错误是第 12 行的“不一致的实例变量规范”。之后它一直告诉我“分子”和“分母”未声明。我得到的这个程序的最后一个错误是“@autoreleasepool”中的“@'token”之前有一个“预期的表达式”。我需要更改什么才能使其编译?谢谢!!
最佳答案
我刚刚使用 GNUStep 遇到了同样的错误。更改@interface 声明并设置类似
@interface Fraction: NSObject {
int numerator;
int denominator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
@end
这就是诀窍并为我成功编译了程序。
关于ios - 如何/在哪里声明用于编写objective-c代码的接口(interface)、实现、程序格式中的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16933338/