效率NSString vs NSInteger / int - 仅用于文本表示

时间:2014-05-23 23:48:13

标签: ios objective-c memory-management nsstring nsinteger

我想知道转换/转换一个从csv文件解析的数字是否合理。客户ID,到NSString? 或者更好一个简单的int?因为我对obj-c很新,所以我不太确定,一直使用NSxyz类型,或者使用我习惯的,来自Java / C / C ++。

实际上这个值只存储在一个变量中,然后加载到一些文本字段中(这又意味着转换回NSString我猜?)。

使用更少的内存会有什么好处吗?让我们假设id有6位数,解析大约10'000-100'000个客户。同样适用于较小的数字,例如地址街道号码。

1 个答案:

答案 0 :(得分:-1)

string1 letter == 1 byte中,如果您有6位数,则占用6 bytes

int通常需要2 (short), 3 or 4 (long) bytes。它也可以8 bytes到达int_64。但是,您受到限制,因为例如在 2字节情况(16位)中,您可以考虑 2 ^ 16 数字。

在您的情况下,您可以使用int,但我会使用NSString,因为您需要textfield

NSIntegerintNSUIntegerunsigned int

NSNumber是一个对象(所以没有原语),可以存储intfloatdoubleboolean。因此,您可以在此类变量中存储多种类型的基元,然后使用相应的:

[number floatValue];
[number boolValue];
...