结构

在 Objective C 中,你几乎应该始终使用对象而不是结构。但是,仍然存在使用结构更好的情况,例如:

  • 当你要创建和销毁(struct)类型的很多值时,你需要良好的性能和小内存使用
  • 结构的创建和使用速度更快,因为在对象上调用方法时,必须在运行时确定方法
  • 结构占用的尺寸较小,因为对象具有额外的属性 isa,它保留了它们的类
  • 当值只有几个属性和一个小的总大小时(取 CGSize;它有 2 个浮点数,每个 4 个字节,所以它可能占用 8 个字节),并将被大量使用(与第一点)
  • 当你可以使用联合位域时 ,重要的是,*需要它们保存的大小,*因为你需要很小的内存使用量(与第一点相关)
  • 当你真的想在结构中存储一个数组时,因为 Objective-C 对象不能直接存储 C 数组。但是,请注意,你仍然可以通过使其成为引用(即 type *代替 C-array type[])来间接获取 Objective-C 对象中的数组。
  • 当你需要与其他代码(例如库)进行通信时,这些代码用 C 编码; 结构完全用 C 实现,但对象不是