assign修飾對象類型會怎樣?

首先咱們須要明確,對象的內存通常被分配到堆上,基本數據類型和oc數據類型通常被分配在棧上。程序員

若是用assign修飾對象,當對象釋放後(由於不存在強引用,離開做用域對象內存可能被回收),指針的地址仍是存在的,也就是說指針並無被置爲nil,下次再訪問該對象就會形成野指針異常。對象是分配在堆上的,堆上的內存由程序員手動釋放。指針

assign修飾基本數據類型或OC數據類型,由於基本數據類型是分配在棧上的,由系統分配和釋放,因此不會形成野指針。對象

相關文章
相關標籤/搜索