0

当我为年龄赋值时,我得到这个错误:

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

我尝试使用self.age,但它没有工作

这是我的 .m 文件:

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

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

4

2 回答 2

0

您应该添加:

-(void)setAge:(int)value;

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

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

于 2013-08-13T15:32:49.470 回答
0

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

@interface Person : NSObject 

@property (nonatomic) int age;

@end

@implementation Person 

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

@end

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

于 2013-08-13T15:35:16.257 回答