2013-03-26 135 views
0

我的新目標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 
+0

我沒有得到你的問題的,舊式的組合?你是要求在.m而不是.h合成或聲明一個方法嗎? – 2013-03-26 16:03:06

+2

這是給你麻煩的代碼嗎?如果是這樣,您必須在代碼中的某處聲明「名稱」和「頻率」,最好在RadioStation.h中聲明。如果這不能回答你的問題,請詳細說明...... – katzenhut 2013-03-26 16:12:37

+0

是的,我需要聲明名稱和頻率來解決這個問題。 但我不知道這是書的作者的錯誤還是因爲Xcode版本的不同。 謝謝大家,我認爲這是本書作者的錯誤。 – lionK 2013-03-27 01:53:33

回答

1

從你的代碼看起來你有四個類的方法,和兩個設置/吸氣每個(的NSString)和頻率(雙)。

我想這兩個都屬於您的RadioStation類。

​​

也可能是高德爲:

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

或者兩者皆是高德和屬性

@interface RadioStation : NSObject{ 
    NSString *name; 
    double frequency; 
} 
@end 
+0

是的,其實我通過在你的文件中添加這些代碼來解決我的問題。所以我的問題是這個問題發生,因爲Xcode版本的不同或書的作者的錯誤。 非常感謝。 – lionK 2013-03-27 01:52:22

0

可以按如下聲明中.h或.m文件變量:

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

使用此代碼在您的文件進口下方的頂部。

相關問題