我们需要在类中声明变量吗?

时间:2013-03-26 15:58:46

标签: objective-c xcode

我是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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

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