assign:簡單的賦值。 retain:賦值之後,會調用新的retain方法和舊值的release方法。 copy:表示先將值拷貝一份,然後,將這個拷貝賦值給實例變數,這個修飾詞只適用於實現了NSCopying協議的類型。 weak:表示這個屬性的值將是一個弱引用,引用和被引用之間沒有所屬關係。如 ...
assign:簡單的賦值。
retain:賦值之後,會調用新的retain方法和舊值的release方法。
copy:表示先將值拷貝一份,然後,將這個拷貝賦值給實例變數,這個修飾詞只適用於實現了NSCopying協議的類型。
weak:表示這個屬性的值將是一個弱引用,引用和被引用之間沒有所屬關係。如果系統銷毀了某個屬性所引用的對象,屬性的值會自動地變為nil.一般情況下,如果父對象擁有子對象的引用,那麼子對象就不應該再持有父對象的引用,而是應該使用偌引用的方式來引用父對象,有點像繞口令。
相反的,強引用類型的屬性表示的是引用和被引用者之間具有所屬關係,從記憶體使用的角度來描述就是引用對象被回收之前,被引用的對象不會被回收。
nonatomic指定訪問器方法是非線程安全的,即多個線程可以同時訪問這個屬性。預設情況下,訪問器方法都是線程安全的,即使在多線程環境中也毫無風除。然而,即使要保證在多線程環境中能正常工作,訪問器也不一定必須是線程安全的。而將訪問器方法指定為非線程安全的,可以讓getter方法直接返回實例變數的值,效率更高,在iPhone應用中特別推薦使用。
參考資料:《iOS編程指南》