1. 程式人生 > >iOS--assign修飾物件型別會怎樣?

iOS--assign修飾物件型別會怎樣?

首先我們需要明確,物件的記憶體一般被分配到堆上,基本資料型別和oc資料型別一本被分配在棧上。

如果用assign修飾物件,當物件釋放後(因為不存在強引用,離開作用域物件記憶體可能被回收),指標的地址還是存在的,也就是說指標並沒有被置為nil,下次再訪問該物件就會造成野指標異常。物件是分配在堆上的,堆上的記憶體由程式設計師手動釋放。

assign修飾基本資料型別或OC資料型別,因為基本資料型別是分配在棧上的,由系統分配和釋放,所以不會造成野指標。