在将参数赋给变量时,错误地使用未声明的标识符“value”

时间:2013-08-13 15:26:19

标签: ios

当我为年龄分配值时,我收到此错误:

@interface Person : NSObject
{
    int age;
} 
-(void)setAge;   
@end

我尝试使用self.age,但它无效

这是我的.m文件:

@implementation Person 
-(void)setAge(int)value
{ 
    age = value;
}    
@end

我尝试了几种不同的东西。 ..当我输入这个时我得到这个错误:age = value;你知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

你应该添加:

-(void)setAge:(int)value;

在头文件中,因为当前的方法规范没有参数。

您在实现中的方法也应该具有相同的规范,因为它当前缺少冒号。

答案 1 :(得分:0)

您实际上已经声明了一个方法(-setAge)并实现了另一个方法(-setAge:,请注意冒号)。您应该将age声明为属性,并尽可能避免使用明确的ivars。另外,我希望您在实际代码中正确格式化了类。

@interface Person : NSObject 

@property (nonatomic) int age;

@end

@implementation Person 

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

@end

请注意,不再需要显式@synthesize属性,它们会自动与强调的ivar合成。