我听一个开发者说,在Objective-C中使用整数可能会令人沮丧,所以他更喜欢直接使用字符串来存储JSON消息返回的ID,以避免频繁转换整数和字符串。换句话说,即使服务器上本来是整数类型,他也希望API返回这些ID为字符串。他还说在Objective-C中不能像字典/映射那样使用整数,所以再次使用字符串更好(他建议我们只需在DB表中使用'1'而不是1作为主键,以便两边的数据类型一致)。
我对Objective-C知之甚少,但我很难相信这种基础性的东西在语言中会如此令人讨厌。据我了解,Objective-C中有不同类型的“数字”:
- int、float、double、long和short(C基本类型) - NSInteger、NSUInteger和CGFloat(Objective-C基本类型)
后一种类型似乎标准化了不同底层架构之间的API,使得开发人员不需要关心不同硬件上的32位与64位整数等问题。
回到我的朋友的抱怨,对于从Web API返回的整数ID,应该使用哪种数据类型来存储它们并在数据结构(如字典)中使用它们?这些转换是否不可避免?
我对Objective-C知之甚少,但我很难相信这种基础性的东西在语言中会如此令人讨厌。据我了解,Objective-C中有不同类型的“数字”:
- int、float、double、long和short(C基本类型) - NSInteger、NSUInteger和CGFloat(Objective-C基本类型)
后一种类型似乎标准化了不同底层架构之间的API,使得开发人员不需要关心不同硬件上的32位与64位整数等问题。
回到我的朋友的抱怨,对于从Web API返回的整数ID,应该使用哪种数据类型来存储它们并在数据结构(如字典)中使用它们?这些转换是否不可避免?
NSNumber
不是原始类型。它是一个类,不像你列出的所有其他类型。 - rmaddy