ios property屬性的修飾符是什麽,它們的作用是什麽?
1.可讀性修飾符:readwrite readonly readwrite:表示這個屬性是可讀可寫的,系統為我們創建這個屬性的setter和getter方法。Readonly:指示該屬性只能讀取,不能寫入。系統只為我們創建壹個getter方法,不會創建setter方法。2.setter相關修飾符:assign Stay Copy setter相關修飾符表示setter方法應該如何實現assign:表示直接賦值,用於基本數據類型(NSInteger和CGFloat)和c數據類型(如int、Float、double、char等。)和id類型。這個修飾符不涉及內存管理。但是,如果它是壹個對象類型,使用此修飾符可能會導致內存泄漏或EXC _壞_訪問錯誤:對象類型的內存管理。如果用於基本數據類型,Xcode會直接報錯。當這個修飾符用於壹個對象類型時,setter方法會先釋放舊的對象屬性,然後給新的對象賦值並執行壹個retain操作copy:主要用於NSString類型,表示復制的內容。系統的默認屬性是assign。Retain是指針的副本,copy是內容的副本。3.原子性修飾符:原子非原子原子:表示線程安全。Nonatomic:表示它是線程安全的,使用該屬性可以提高性能。系統默認為atomic 4.getter和setter修飾符@ property (getter = getmethodname,setter = set method name)object * obj;這兩個屬性修飾符用於設置自定義生成的getter和setter方法名,使用後將不再使用默認的setter和getter方法名。@property修飾符中可以出現多個修飾符,用逗號分隔。但在上述修飾符中,1,2,3組中的屬性有壹個出現,只能同時出現4個。Xcode4.2(iOS sdk4.3及以下)及之前的版本使用retain and assign Xcode4.3(iOS 5及以上)或之後的版本,ARC對非指針變量使用strong and weak assign:用於基本數據類型(如NSInteger、CGFloat)和c數據類型(int、Float、double、char等。),以及id類型。記住:如果不需要在前面加*的話,對指針變量使用Assign Stay:壹般用於字符串(NSString,NSMutableString),數組(NSMutableArray,NSArray),字典對象,視圖對象(UIView),控制器對象(UIViewController)等。弱類似於assign最簡單的內存:對基本數據類型(如NSInteger、CGFloat)和C數據類型(int、Float、double、char等)使用assign:),對於id類型,使用copy:對於NSString類型使用retain:對於其他NSObject及其子類。