将一串数字转换为NSTimeInterval

时间:2010-06-06 20:22:22

标签: iphone c objective-c

我知道我必须过于复杂,因为NSTimeInterval只是一个双倍,但我似乎无法正确完成这个,因为我很少接触到目标c。方案如下:

我拉入应用程序的数据包含两个值,startTime和endTime,它们是以毫秒为单位的纪元时间。我想要保存这些值的变量是  NSTimeInterval *start; NSTimeInterval *end;

我决定将它们存储为NSTimeIntervals,但我认为可能我应该将它们存储为双精度因为它们不需要NSTimeIntervals,因为比较只能用原语来完成。无论哪种方式,我想知道在下一步中我缺少的是什么,我尝试从字符串转换为NSTimeInterval:

    tempString = [truckArray objectAtIndex:2];
    tempDouble = [tempString doubleValue];

现在它安全地存储为double,但我无法将值传入NSTimeInterval。该如何实现?感谢

2 个答案:

答案 0 :(得分:11)

你不必演员,你可以写下这个:

NSTimeInterval timeInterval = [[truckArray objectAtIndex:2] doubleValue];

演员阵容是不必要的,额外的演员阵容只是让你的源代码更难以更新和更改,因为你已经告诉编译器不要键入 - 检查你的演绎表达式。

答案 1 :(得分:2)

  

我想要保存这些值的变量是NSTimeInterval *start; NSTimeInterval *end;

小心,NSTimeInverval是原始C类型的typedef,它不是Objective-C对象。在这种情况下,我认为你实际上不需要指向这些类型的指针,所以你应该像这样声明它们:

NSTimeInverval start;
NSTimeInterval end;

您可能会收到错误,因为在C中,您无法将浮点类型转换为指针类型。