1. 程式人生 > >ios-結構體和類的區別

ios-結構體和類的區別

1、結構體只能封裝屬性,類卻不僅可以封裝屬性也可以封裝方法。如果一個封裝的資料有屬性也有行為,就只能用類了。

2、結構體變數分配在棧,而OC物件分配在堆,棧的空間相對於堆來說是比較小的,但是儲存在棧中的資料訪問效率相對於堆而言是比較高

3、堆的儲存空間比較大,儲存在堆中的資料訪問效率相對於棧而言是比較低的

4、如果定義一個結構體,這個結構體中有很多屬性,那麼這個時候結構體變數在棧中會佔據很多空間,這樣的話就會降低效率

5、我們使用結構體的時候最好是屬性比較少的結構體物件如果屬性較多的話就要使用類了。

6、結構體賦值的話是直接賦值,物件的指標,賦值的是物件的地址。