【问题标题】:NStimeInterval property errorNStimeInterval 属性错误
【发布时间】:2011-03-07 10:22:12
【问题描述】:

我的对象声明如下:

我的.h

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

我的.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];

我得到错误:“'setTime' 的参数 1 的类型不兼容”

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

【问题讨论】:

  • 你确定描述没有问题吗?我对这个问题感到困惑(在上面没有看到任何错误),在一个非常简单的项目中将它复制到 XCode 上并且没有任何错误。
  • 你确定getTimeInterval: 被声明为-(NSTimeInterval)getTimeInterval:(NSString*)timeStr,而不是- (NSTimeInterval *)getTimeInterval:(NSString*)timeStr 之类的东西(也在.h 文件中)?
  • 谢谢你们,你们引导我找到解决方案。我的代码与我发布的完全一样,但是我没有在 .h 文件中声明该函数,这是很奇怪的。在这种情况下,我总是看到警告消息说类可能不会响应函数,但这是我第一次遇到错误。

标签: iphone objective-c xcode nstimeinterval


【解决方案1】:

您的函数“getTimeInterval”将字符串作为参数,我假设您将 NSTimeInterval / double 传递给函数,从而导致警告。你应该改变你的

-(NSTimeInterval)getTimeInterval:(NSString*)timeStr 

获取 NSTimerInterval 的参数(这只是一种花哨的说法)。如果您打算传入一个时间的字符串表示并返回一个 NSTimeInterval,那么您的代码中有一个错误,应该将 timeInterval 变量更改为包含您的时间的字符串变量。

【讨论】:

    【解决方案2】:

    这在很多方面看起来都很奇怪。

    我很确定 NSTimeInterval 只是 double 的 typedef,这使得将属性定义为 assign 是错误的。删除它,看看它是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      相关资源
      最近更新 更多