gpt4 book ai didi

c# - NSArray 的、原始类型和拳击哦,我的天哪!

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:24 29 4
gpt4 key购买 nike

我是 Objective-C 世界的新手,而且我在 .net/C# 方面有很长的历史,所以我自然而然地倾向于使用我的 C# 智慧。

现在问题来了:我真的很想创建某种类型的 简单 Objective-C 集合来保存原始类型,因为我不喜欢将原始类型包装到对象中的整个概念 (即 NSNumber),然后将其添加到 NSArray 等集合中。

问题是,我完全理解 NSArray 只对对象进行操作。然而,这对我来说真的很愚蠢,我们被迫使用盒装基元只是因为不存在可用于基元整数的集合。

所以 C# 人员会知道我在过去使用 .net 谈论的内容。通常,当泛型尚未出现时,您会使用简单数组或 ArrayList。 ArrayList 本质上是强制您将原始类型装箱,但它实际上是在幕后完成的,您为此付出了高昂的代价(在性能方面)。

如果您无法处理性能成本,那么您可以推出自己的自定义集合,或者最终在泛型出现时使用它们。

现在在 Objective-C 的世界里,我们不得不再次处理这个问题,但 Apple 开发人员似乎并不关心,或者这没什么大不了的。

所以我的问题是:这里推荐的做法是什么?例如,我应该尝试构建自己的自定义 Objective-C 集合来保存 NSI​​nteger 吗?或者我是否应该像这篇博文中的同事 Memo 建议的那样使用 native C 数组:NSArray vs. C Array performance

或者我只是坚持使用 Apple 的内置集合并咬紧牙关。它表明,在构建性能关键型应用程序时,Memo 解释的性能特征值得考虑。

这篇文章很啰嗦,但我不得不把它从胸前说出来。

最佳答案

我个人建议使用 Objective-C++ 和 std::vector<>;除非您确实需要使用 native Objective-C 容器,否则您将不得不使用对象。

关于c# - NSArray 的、原始类型和拳击哦,我的天哪!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1727102/

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