IOS 知識點總結(十)之結構體和類

##區別:

1.結構體只能封裝屬性,類卻不僅可以封裝屬性也可以封裝方法,如果及需要封裝屬性有需要封裝方法的話,就只能是類了。
2.結構體變量屬於值類型,分配在棧上,而OC對象分配在堆,棧的控件相對於對來說是比較小的,但是存儲在棧上的數據訪問效率比堆上的數據快很多。
3.如果定義一個結構體,這個結構體有很多的屬性,那麼這個是有就要選擇使用類來處理,在棧中佔用太多的空間會降低效率;
3.結構體賦值是值類型,而對象是指針地址的賦值。

swift中區別

1.類是引用類型,結構體是值類型,值類型的傳遞和賦值時時複製操作,而引用類型則只會使用引用對象的一個指向,引用類型公用一塊內存空間,而值類型是使用不同的內存空間;
2.類的特點

  • 類可以集成,這樣子類可以使用父類的特性和方法;
  • 可以使用deinit來釋放資源;
  • 類可以被多次引用

3.結構體的特點

  • 結構體較小,適用於複製操作,相比類的實例被多次引用更加安全,不會佔用棧上更多的資源;
  • 結構體,是現成安全的,無需擔心內存memory leak或者多線程衝突;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章