[iOS] iOS property 屬性說明

Nonatomic
nonatomic 是使用在多緒的時候. 如果我們在宣告時設定了nonatomic這個屬性, 那麼其他任何想要存取這個物件的緒都可進行存取

Copy
copy 當物件是mutable時就是必須的. 如果你需要物件當下的那個值, 而且你不希望這個值被其他擁有者所改變, 那麼就使用copy! 當你使用完時必須要釋放他, 因為copy是會retain的.

Assign
Assign 可以說是copy的相反. 當對於assign這個屬性呼叫getter時, 他會回傳實際資料的參考. 通常我們在使用float, int, BOOL...的時候會使用這個屬性.

Retain
retain 當屬性是指向物件的指摽時, retain就是必須的. 被@synthesize 產生出來的setter會retain這個物件. 你必須在完成後釋放他. 使用了retain會讓count增加, 並且會佔用到autorelease pool的空間.

Strong
strong 是retain屬性的代替品, 是ARC的一部分. 在non-ARC就是retain的同義字. 想知道strong跟weak可以參考這個很棒的網站

Weak
weak 類似strong只是他不會增加count的數量. 他不會變成物件的擁有者, 只是一個參考而已.
如果物件的reference count變成0時, 即使你還指著它, 但他還是會從記憶體被deallocated.
若需要更多很棒的資訊請參考 Weak and Strong.

留言