-4

Employee类中有一个setter方法

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

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

我想也许我应该检查年龄,因为如果年龄 < 0 对 Employee 不正确

4

2 回答 2

2

这是无限递归循环。因为它一次又一次地调用……像这样……

[self setAge:age];

所以你应该这样做..

@synthesize age = _age;

- (void)setAge:(int)age 
{
    _age = age;
}
于 2013-07-12T10:25:53.263 回答
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
 }
于 2013-07-12T10:36:34.707 回答