2011-03-07 50 views
0

我的对象声明如下:NStimeInterval属性错误

my.h

@interface My:NSObject{ 
    NSTimeInterval time; 
} 
@property (assign) NSTimeInterval time; 
@end 

my.m

@implementation My 
@synthesize time; 
@end 

某处代码:

-(NSTimeInterval)getTimeInterval:(NSString*)timeStr 
{ 
    NSTimeInterval interval; 
    //some code 
    return interval; 
} 


-(void) func:(NSString*)timeInterval 
{ 
    My *my = [[My alloc] init]; 
    my.time = [self getTimeInterval:timeInterval]; 
} 

在行

my.time = [self getTimeInterval:timeInterval]; 

我得到错误:“不兼容的类型为‘时刻设定’的参数1”

谁能告诉我问题出在哪里?

+0

你确定描述中没有错?我对这个问题感到困惑(上面没有看到任何错误),在一个非常简单的项目中将其复制到XCode中,并且没有任何错误。 – Bourne 2011-03-07 10:34:59

+0

你确定'getTimeInterval:'被完全声明为' - (NSTimeInterval)getTimeInterval:(NSString *)timeStr',而不是像' - (NSTimeInterval *)getTimeInterval:(NSString *)timeStr'(并且在.h文件中太)? – Jilouc 2011-03-07 11:08:33

+0

谢谢你们,你让我找到解决方案。我发布的代码非常精确,但是我没有在.h文件中声明函数。在这种情况下,我总是看到警告信息,表示课程可能不会对该功能做出响应,但这是我第一次出错。 – Misha 2011-03-07 11:18:43

回答

0

你的函数“getTimeInterval”接受一个字符串作为参数,并且我认为你传递了一个NSTimeInterval/double到函数中,导致警告。你应该改变你的参数NSTimerInterval(这只是一个奇特的方式来说双)。如果你的意思是传递一个时间的字符串表示并返回NSTimeInterval,那么你的代码中有一个错误,并且应该将timeInterval变量改为一个包含你的时间的字符串变量。

0

这在很多方面都很奇怪。

我很确定NSTimeInterval只是double的typedef,它使属性的定义成为错误。删除它,看看它是否工作。