2013-07-12 22 views
-4

有一個在Employee類如何在Objective-C

-(void)setAge:(int)age{ 
    self.age = age; 
} 

setter方法我知道,我應該使用self.age的_age寫一個正確的setter方法。這個setter方法有沒有其他問題?

我想也許我應該檢查的年齡,因爲如果<年齡0不是員工

+2

爲什麼?你是否修復了你認爲是錯誤的事情,而你仍然有問題? – Wain

+0

您使用ARC嗎? –

+1

@SAMIRRATHOD在這個例子中沒有對象,'ARC'只能用於對象,因爲你不必保留原始類型。 – rckoenes

回答

2

這是無限遞歸循環正確的。因爲它一次又一次......類似這樣的電話...

[self setAge:age]; 

所以,你應該做這樣的..

@synthesize age = _age; 

- (void)setAge:(int)age 
{ 
    _age = age; 
} 
+0

'int *'似乎是錯的,你已經編輯過6次了嗎? – Wain

+0

我真的很抱歉...只是愚蠢的錯誤...並感謝它.. –

+0

與'LLVM'也沒有必要'合成'屬性,編譯器會爲你做這個。它也會爲你創建'_age'變量。 – rckoenes

0

這將創建無限循環。

加入你的頭文件。

@property (readwrite, assign) NSInteger age; 

您不需要在新版本的xcode中使用@synthetize。

後,您可以使用屬性:

self.age = 15; 
or 
[self setAge:15] 
NSLog(@"Age is %d", self.age); 

而且你還可以修改二傳手

-(void)setAge:(NSInteger)age { 
    _age = age; 
    // your code 
}