Iphone 将NSTimeInterval持续时间转换为NSString

Iphone 将NSTimeInterval持续时间转换为NSString,iphone,objective-c,Iphone,Objective C,我是iphone开发的新手。我有个问题。我想在NSString中转换NSTimeInterval值,但在这方面没有成功。请快速查看下面的代码 in.h 英寸 在一个标签上设置这个字符串---- 但它不起作用,它显示错误:“stringFromDate:”的参数1的类型不兼容 如果我对该行进行注释,它将在控制台窗口中显示正确的持续时间 感谢您的帮助。NSTimeInterval实际上是一个双精度的,所以要将其转换为字符串,您只需使用 NSString *time = [NSString strin

我是iphone开发的新手。我有个问题。我想在NSString中转换NSTimeInterval值,但在这方面没有成功。请快速查看下面的代码

in.h

英寸

在一个标签上设置这个字符串----

但它不起作用,它显示错误:“stringFromDate:”的参数1的类型不兼容

如果我对该行进行注释,它将在控制台窗口中显示正确的持续时间


感谢您的帮助。

NSTimeInterval实际上是一个双精度的,所以要将其转换为字符串,您只需使用

NSString *time = [NSString stringWithFormat:@"%f", duration];
此持续时间不是classNSDate,因此无法通过名为stringFromDate的方法转换。 正如Vladimir所说,NSTimeInterval是双精度的,使用他的方法可以获得正确的NSString。

来自:

从您的代码:

NSTimeInterval duration; 
^^^^^^^^^^^^^^ the type of what you are passing.
错误显示为“不兼容类型”。你认为那是什么意思?可能NSTimeInterval与NSDate*不兼容。以下是这些文件的内容:

NSTimeInterval始终以秒为单位指定

该错误告诉您编译器无法将NSTimeInterval(实际上是双精度)转换为指向NSDate的指针。这并不奇怪。由于NSTimeInterval实际上是双精度的,因此可以使用
%f
格式说明符轻松地将其转换为字符串

foo = [NSString stringWithFormat: @"%f", timeInterval];

谢谢大家的快速回复。通过u的建议,我明白我将通过一个不同的参数类型。现在它的工作很好。再次感谢Vladimir、Toro和JeremyP。非常酷,你指出NSTimeInterval是一个双精度值,我需要以毫秒为单位的时间,所以我将它乘以1000,解决了我的问题。
NSString *time = [NSString stringWithFormat:@"%f", duration];
NSString *time = [dateFormatter stringFromDate:duration];----> Error
- (NSString *)stringFromDate:(NSDate *)date
                              ^^^^^^^^ the type of the argument
NSTimeInterval duration; 
^^^^^^^^^^^^^^ the type of what you are passing.
typedef double NSTimeInterval;
foo = [NSString stringWithFormat: @"%f", timeInterval];