1. 程式人生 > >結構體和類的區別 (objective c)

結構體和類的區別 (objective c)

 1. 結構體只能封裝屬性,而類不僅可以封裝屬性還可以封裝方法.
 
    如果1個封裝資料既有屬性也有行為,只能用類.
 
 
 2. 結構體變數分配在棧.OC物件分配在堆.
    棧的空間相對較小.但是儲存在棧中的資料訪問效率相對較高.
    堆的空間相對較大.但是儲存在堆中的資料的訪問效率相對較低.
 
    如果1個封裝資料只有屬性.如果用結構體就會分配在棧 效率就會高.
                                                   如果使用型別 物件就分配在堆 效率相對就會低.
 
    如果定義1個結構體,這個結構體中有很多個屬性.那麼這個時候結構體變數在棧中就會佔據很大1塊空間 反而會降低效率.
 

    什麼時候使用結構體: 1). 封裝資料只有屬性 2) 屬性較少. 3個以下.

    什麼時候使用類: 1).封裝資料既有屬性也有行為. 2).只有屬性 但是屬性較多.
 
 
 3. 結構體賦值是 直接賦值的值. 而物件的指標 賦值的是物件的地址.