将一串数字转换为 NSTimeInterval
Posted
技术标签:
【中文标题】将一串数字转换为 NSTimeInterval【英文标题】:Convert a string of numbers to a NSTimeInterval 【发布时间】:2010-06-06 20:22:22 【问题描述】:我知道我一定是过于复杂了,因为它 NSTimeInterval 只是一个双倍,但我似乎无法正确完成这件事,因为我很少接触目标 c。场景如下:
我拉入应用程序的数据包含两个值,startTime 和 endTime,它们是以毫秒为单位的纪元时间。我想保存这些值的变量是
NSTimeInterval *start;
NSTimeInterval *end;
我决定将它们存储为 NSTimeIntervals,但我认为也许我应该将它们存储为双精度值,因为不需要 NSTimeIntervals,因为比较可以用一个原语来完成。无论哪种方式,我都想知道我在接下来的步骤中缺少什么,我尝试从字符串转换为 NSTimeInterval:
tempString = [truckArray objectAtIndex:2];
tempDouble = [tempString doubleValue];
现在它被安全地存储为双精度,但我无法将值放入 NSTimeInterval。这应该如何实现?谢谢
【问题讨论】:
【参考方案1】:你不必投射,你可以这样写:
NSTimeInterval timeInterval = [[truckArray objectAtIndex:2] doubleValue];
强制转换是不必要的,额外的强制转换只会让您的源代码在未来更难更新和更改,因为您已告诉编译器不要对您的强制转换表达式进行类型检查。
【讨论】:
【参考方案2】:我想保存这些值的变量是
NSTimeInterval *start; NSTimeInterval *end;
小心,NSTimeInverval
是原始 C 类型的 typedef,它不是 Objective-C 对象。我认为在这种情况下您实际上不需要指向这些类型的指针,因此您应该像这样声明它们:
NSTimeInverval start;
NSTimeInterval end;
您可能会遇到错误,因为在 C 中,您无法将浮点类型转换为指针类型。
【讨论】:
以上是关于将一串数字转换为 NSTimeInterval的主要内容,如果未能解决你的问题,请参考以下文章