gpt4 book ai didi

objective-c - 结构或类

转载 作者:太空狗 更新时间:2023-10-30 03:39:13 26 4
gpt4 key购买 nike

我正在开发 iPhone 3.1.3 应用程序。

我有一个名为 Object2D 的类,其中包含字段和方法;代表一个形状。 Object2D 有一个字段代表它的大小,另一个字段代表它的类型。

现在,我需要另一个名为 Pattern 的类,它是一组形状。在 Pattern 中,我将拥有一组形状。从这些形状中,我只需要它们的大小、类型和它们在图案中的位置,我不需要任何方法。

我想知道有一个表示形状的新结构而不是使用 Object2D 类会更好。

我问这个是因为我考虑内存性能。我不确定,但结构比类小,也许使用它们而不是类更好。

你怎么看?

最佳答案

如果您查看内存使用情况,几乎在所有情况下差异都可以忽略不计。对象比等效结构大一个指针。

更大的区别在于如何使用它们。对象可以有方法和层次结构并与 Cocoa 的其余部分交互。使用结构,您需要为每种结构类型创建自定义函数或将伪对象系统组合在一起。最重要的是,任意结构不能与 Cocoa (Touch) 的其余部分很好地交互。例如:

  • 如果你在其中存储对象,你必须非常小心地正确地进行你自己的内存管理
  • 如果不创建对象包装器,就不能将它们存储在 NSArrays 中(因为 NSArray 是一个对象数组)
  • 您不能在 Interface Builder 中连接结构——它对它们一无所知
  • 你不能用结构做 KVO 或 KVC

一般来说,如果您正在使用类似 Cocoa 的框架,对象是一个很好的默认选择。一旦确定确实需要结构,就使用它们。

关于objective-c - 结构或类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530481/

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