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