当我为年龄分配值时,我收到此错误:
@interface Person : NSObject
{
int age;
}
-(void)setAge;
@end
我尝试使用self.age
,但它无效
这是我的.m文件:
@implementation Person
-(void)setAge(int)value
{
age = value;
}
@end
我尝试了几种不同的东西。 ..当我输入这个时我得到这个错误:age = value;你知道为什么会这样吗?
答案 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合成。