Int在不同iOS版本中的最大值是多少?

时间:2016-01-28 05:42:42

标签: ios swift int max

我正在构建此应用,它需要将字符串转换为Int。所以我这样做了:

Int(someString)

但是,有时someString是一个非常大的数字。其值超过Int32的最大值。我知道如果用户使用不同的操作系统,Int的最大值可能会有所不同。

我使用iOS 9和iOS 8测试我的应用程序,它运行正常。这意味着Int的最大值是2 64 - 1,而不是32位。但是其他iOS版本呢?如果Int的最大值较小,我的应用会产生错误的输出!

我只是想问一下不同iOS版本中Int的最大值是多少?哪个版本'(s)最大值是32位?

2 个答案:

答案 0 :(得分:3)

在所有32位系统上Int为32位,在所有64位系统上为64位。通常,您将构建一个在所有处理器上运行的通用二进制文件,然后它取决于设备中的处理器。或者你只构建了32位(对于那些不再在App Store上被接受的iOS),它总是32位。

你可以在Swift中使用Int64,它总是64位。要计算应用程序中的内容,比如数组中有多少元素,您应该始终使用Int。对于代码之外的东西,如果+/- 20亿保证足够,则使用Int,如果+/- 8亿亿就足够,则使用Int64,如果这还不够,则会出现问题: - )

提前计划。例如,我相信Twitter最初认为32位足以对所有发送过的推文进行编号。它不是一段时间造成麻烦的。

答案 1 :(得分:1)

整数的大小取决于处理器体系结构,而不是操作系统。您可以使用条件编译来确定您当前正在运行的内容。例如:

    #if arch(arm64)
    // 64-bit
    #end

文档here(在“构建配置”下)显示了您可以测试的内容。您还可以使用os()来确定操作系统。

请注意,由于某些原因,我的笔记本电脑上的模拟器将iPad Retina作为32位运行,即使实际设备是64位。