我知道我必须过于复杂,因为NSTimeInterval只是一个双倍,但我似乎无法正确完成这个,因为我很少接触到目标c。方案如下:
我拉入应用程序的数据包含两个值,startTime和endTime,它们是以毫秒为单位的纪元时间。我想要保存这些值的变量是
NSTimeInterval *start;
NSTimeInterval *end;
我决定将它们存储为NSTimeIntervals,但我认为可能我应该将它们存储为双精度因为它们不需要NSTimeIntervals,因为比较只能用原语来完成。无论哪种方式,我想知道在下一步中我缺少的是什么,我尝试从字符串转换为NSTimeInterval:
tempString = [truckArray objectAtIndex:2];
tempDouble = [tempString doubleValue];
现在它安全地存储为double,但我无法将值传入NSTimeInterval。该如何实现?感谢
答案 0 :(得分:11)
你不必演员,你可以写下这个:
NSTimeInterval timeInterval = [[truckArray objectAtIndex:2] doubleValue];
演员阵容是不必要的,额外的演员阵容只是让你的源代码更难以更新和更改,因为你已经告诉编译器不要键入 - 检查你的演绎表达式。
答案 1 :(得分:2)
我想要保存这些值的变量是
NSTimeInterval *start; NSTimeInterval *end;
小心,NSTimeInverval
是原始C类型的typedef,它不是Objective-C对象。在这种情况下,我认为你实际上不需要指向这些类型的指针,所以你应该像这样声明它们:
NSTimeInverval start;
NSTimeInterval end;
您可能会收到错误,因为在C中,您无法将浮点类型转换为指针类型。