結構

在 Objective C 中,你幾乎應該始終使用物件而不是結構。但是,仍然存在使用結構更好的情況,例如:

  • 當你要建立和銷燬(struct)型別的很多值時,你需要良好的效能和小記憶體使用
  • 結構的建立和使用速度更快,因為在物件上呼叫方法時,必須在執行時確定方法
  • 結構佔用的尺寸較小,因為物件具有額外的屬性 isa,它保留了它們的類
  • 當值只有幾個屬性和一個小的總大小時(取 CGSize;它有 2 個浮點數,每個 4 個位元組,所以它可能佔用 8 個位元組),並將被大量使用(與第一點)
  • 當你可以使用聯合位域時 ,重要的是,*需要它們儲存的大小,*因為你需要很小的記憶體使用量(與第一點相關)
  • 當你真的想在結構中儲存一個陣列時,因為 Objective-C 物件不能直接儲存 C 陣列。但是,請注意,你仍然可以通過使其成為引用(即 type *代替 C-array type[])來間接獲取 Objective-C 物件中的陣列。
  • 當你需要與其他程式碼(例如庫)進行通訊時,這些程式碼用 C 編碼; 結構完全用 C 實現,但物件不是