1

我想设置NSDateNSInteger我有@property

@property (strong,nonatomic) NSDate *date;

我想要二传手:

-(void)setDate:(NSInteger *)tStamp {
    thumbImgUrl = [NSDate dateWithTimeIntervalSince1970:tStamp];
}

所以我想从NSInteger价值而不是NSDate价值来设置我的日期。我如何声明这个二传手?当我尝试将它放在头文件中时,它可以正常工作,但我收到警告:

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

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

duplicate declaration of method setDate:

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

4

2 回答 2

5

一般来说,这是在 Objective-C 中做事的一种非常糟糕的方式,我强烈建议您将方法名称更改为其他名称,例如-(void)setDateWithInteger:(NSInteger)tStamp. (说到这, NSInteger 是一个原语,而不是一个对象)回答你的问题,不,如果你使用@property. 如果您确实坚持按照自己的方式进行操作,那么您将不得不声明该方法而不使用@property.

于 2012-12-31T14:29:39.517 回答
0

您可能可以接受一个类型id作为 setter 函数的输入参数。

你得到了,duplicate declaration of method setDate:因为你很可能@synthesize date在你的实现文件中有这行。这会自动为您生成 getter/setter。删除该行,因为您提供自己的实现。

于 2012-12-31T14:32:09.803 回答