首先說說iOS中的
assign:我的了解是在普通資料類型中使用(非object-c),可以直接給屬性進行指派而不會開辟多餘的指針。
retain:對指針操作,位址之間的指派,位址改變,屬性的值不改變,retainCount會加一。
copy:在堆中開辟新的記憶體,用于存儲舊的屬性,新的屬性與舊的屬性無互相影響,retainCount為一,與舊的retainCount無影響。
strong:強引用,隻要使用這個修飾的屬性,一旦開辟空間,隻要沒有任何屬性指向他或者屬性置為nil時才會釋放,retainCount會加一。
weak:這是iOS5.0的屬性,跟strong很相似,當沒有任何指針指向它時,會自動釋放記憶體或把其他指向的指針值置為nil,retainCount不變,可以有效防止野指針的情況。