ios - 如何/在哪里声明用于编写objective-c代码的接口(interface)、实现、程序格式中的实例变量?

标签 ios objective-c instance-variables nsautoreleasepool declare

我正在使用 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/

相关文章:

ios - 由于 sprite-kit 游戏中未完成的声音,我的应用程序崩溃了

ios - 试飞 : "You are currently not testing any apps" error

ios - 执行 iOS 应用程序的硬关闭并在带有自动化的模拟器中以保存的状态重新打开

iphone - 禁用/启用 IBOutlet 决定我是否得到触摸?

java - 我正在 Java 中处理静态变量和实例变量,我无法理解代码的输出

ios - scrollView contentOffset y 更改时如何动态更改字体大小?

objective-c - 通过关键字查找相关音频

ios - 如何为标识符使用 PerformSegue

.net - System.Windows.Forms.Timer 和实例变量

ios - 为什么在子类中看不到继承的实例变量?