gpt4 book ai didi

objective-c - 在 Objective-C 中处理整数

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:44 24 4
gpt4 key购买 nike

一位开发人员告诉我,在 Objective-C 中处理整数可能会令人沮丧,因此他更喜欢直接处理 JSON 消息中返回的 ID 字符串,以节省整数和字符串之间的频繁转换。换句话说,他希望 API 将这些 ID 作为字符串返回,即使它们在服务器上是 native 整数。他还说你不能在 Objective-C 的 dictionary/map 中使用整数,这样字符串更好(他建议我们应该只使用 '1' 而不是 1 作为数据库表中的主键,以便两边的数据类型一致)。

我对 Objective-C 知之甚少,但我很难相信这种基本的东西在这门语言中会如此烦人。据我所知,Objective-C 中有不同类型的“数字”:

  • intfloatdoublelongshort(C原语)
  • NSIntegerNSUIntegerCGFloat(Objective-C 原语)

编辑:NSNumber 不是原始类型,而是存储和检索不同原始值的包装对象类型。谢谢@rmaddy

后一种类型似乎标准化了跨不同底层架构的 API,因此开发人员无需关心不同硬件上的 32 位与 64 位整数之类的事情。

回到我 friend 的提示,对于处理从Web API返回的整数ID,应该使用哪种数据类型来存储它们并在数据结构(如字典)中使用它们?上述转换是不可避免的吗?

最佳答案

你的 friend 已经过时几年了。它曾经像他们想象的那样糟糕(尽管我仍然不同意因此而将所有内容都放入字符串中)。

这一切都已通过现代 Objective C 语法得到解决。这是一本字典,里面有一些数字:

NSUInteger answer = 42;
NSDictionary * dict = @{@"answerCount": @1,
@"value": @(answer)};

当然,这不是人们可以选择的最好的语法,但它非常可行。

此外,还有许多库可用于从网络中获取数据、解析 JSON 并将结果分解为模型对象。这样你就永远不会真正处理原始 JSON 字典。我强烈建议您在采用有线格式之前研究这些选项。

关于objective-c - 在 Objective-C 中处理整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com