将一串数字转换为 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的主要内容,如果未能解决你的问题,请参考以下文章

如何将一串二进制数转换为 C 中的字符(每个字符都必须有一个半字节)?

怎么将一段字符转换成MultipartFile

如何将一串大数转换为整数?

如何将一串字节转换为int?

如何将一串十六进制值转换为base64字符串

C语言,如何将一个个输入的数字变成一串数字一起输出来,求解~