覆盖objective-c中的setter

Jak*_*kub 1 objective-c ios

我想设置NSDateNSInteger和我有@property:

@property (strong,nonatomic) NSDate *date;

我想要二传:

-(void)setDate:(NSInteger *)tStamp {
    thumbImgUrl = [NSDate dateWithTimeIntervalSince1970:tStamp];
}
Run Code Online (Sandbox Code Playgroud)

所以我想从NSInteger价值而不是NSDate价值来设定我的约会.我如何声明这个二传手?当我尝试将它放在头文件中它工作正常,但我得到一个警告:

Type of property 'date' does not match type of accessor 'setDate:

如果我想在.m文件中声明它我会收到错误:

duplicate declaration of method setDate:

为什么?有一种方法可以使用不同的输入类型声明setter吗?

The*_*mer 5

通常,这是在Objective-C中执行操作的一种非常糟糕的方式,我强烈建议您将方法名称更改为其他内容,例如-(void)setDateWithInteger:(NSInteger)tStamp.(说到这一点,NSInteger是一个原始的,而不是一个对象)并回答你的问题,不,如果你使用,没有办法声明一个具有不同输入类型的setter @property.如果你坚持按照自己的方式去做,那么你必须在不使用的情况下声明方法@property.