如何在Objective-C中编写正确的setter方法

时间:2013-07-12 10:21:59

标签: objective-c

Employee类中有一个setter方法

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

我知道我应该使用_age而不是self.age。这个setter方法还有其他问题吗?

我想也许我应该检查年龄,因为如果年龄&lt;员工<0>的0不正确

2 个答案:

答案 0 :(得分:2)

这是无限递归循环。因为它一次又一次地呼唤......就像这样......

[self setAge:age];

所以你应该这样做..

@synthesize age = _age;

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

答案 1 :(得分:0)

这将创建无限循环。

添加头文件。

@property (readwrite, assign) NSInteger age;

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

您可以使用该属性后:

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

您还可以修改setter

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