0

我是 Objective C 的新手,也是编程的新手。我正在阅读一本名为“Objective C for Absolute Beginner”的书,当我尝试使用他们的示例进行练习时遇到问题。

在示例中,我们有一些方法要定义,它们必须使用一些变量。但是没有行来声明这些变量,我的 Xcode 中出现错误。然后我尝试在实现中声明这些变量并且它起作用了。(不再有错误)

我的问题是,这本书缺少关于声明变量的内容还是没有必要?还是取决于 Xcode 版本?因为在下一个示例中,我再次遇到此类问题。

我知道这可能是一个愚蠢的问题,但我是全新的^^。

太感谢了。

#import "RadioStation.h"

@implementation RadioStation

+ (double)minAMFrequency {
return 520.0;
}

+ (double)maxAMFrequency {
return 1610.0;
}

+ (double)minFMFrequency {
return 88.3;
}

+ (double)maxFMFrequency {
return 107.9;
}

- (id)initWithName:(NSString *)newName atFrequency:(double)newFrequency {
    self = [super init];
    if (self != nil) {
         name = newName;
         frequency = newFrequency;
    }
    return self;
}

- (NSString *)name {
    return name;
}

- (void)setName:(NSString *)newName {
     name = newName;
}

- (double)frequency {
     return frequency;
}

- (void)setFrequency:(double)newFrequency {
     frequency = newFrequency;
}
@end
4

2 回答 2

1

从您的代码看来,您有四个类方法,每个名称(NSString)和频率(双精度)有两个 setter/getter。

我想这两个是你RadioStation班级的财产。

@interface RadioStation : NSObject
@property (assign) NSString *name;
@property double frequency;
@end

或者它可能是 ivars:

@interface RadioStation : NSObject{
    NSString *name;
    double frequency;
}
@property (assign) NSString *name;
@property double frequency;
@end

或者,ivars 和属性的旧式组合

@interface RadioStation : NSObject{
    NSString *name;
    double frequency;
}
@end
于 2013-03-26T16:24:40.290 回答
0

您可以在 .h 或 .m 文件中声明变量,如下所示:

@interface MyViewController (){
    NSString *string;
    int integer;
}

在导入下方的文件顶部使用此代码。

于 2013-03-26T16:01:32.237 回答