ios-屬性特性 – iPhone手機開發 iPhone軟體開發教學課程

ios-屬性特性,屬性的特性:為屬性提供瞭一些關鍵字用以控制setter、getter的實現細節,這些關鍵字稱為屬性的特性(attribute);
2、讀寫性
1)readonly:隻讀狀態,是告訴編譯器,屬性隻生成getter方法,不生成setter方法;
2)readwrite:讀寫狀態,是告訴編譯器,屬性既生成setter方法又生成getter方法,既有設置器,也有訪問器,默認的讀寫特性;
3)setter=:指定屬性生成的setter方法的名字;
4)getter=:指定屬性生成的getter方法的名字。
@property (readwrite, setter=setname:, getter = getname) NSString *name;
原子性
1)atomic:原子特性,setter、getter方法在多線程訪問下是絕對安全的,即setter、getter內部做瞭多線程訪問處理。默認的原子特性。
2)nonatomic:非原子特性,settler、getter方法內部不會做多線程訪問處理,僅僅是普通的setter、getter方法。
3)程序開發過程中,setter、getter會頻繁使?,如果使?atomic需要 不斷的對setter、getter加鎖解鎖以保證線程訪問的安全,會?常占?系統資源,降低系統性能。聲明屬性時,通常使用nonatomic。
@property (nonatomic) NSString *name;
語義特性
1)如果屬性是非對象類型(比如int、float等)屬性的語義設置使用assgin;
2)如果屬性是對象類型(比如NSString等)並且要保留這個對象的時候,屬性的語義設置使用retain;

3)如果屬性是對象類型並且想要得到對象的副本,使用copy。

@class和import ".h"的區別

import會包含這個類的所有信息,包括實體變量和方法,而@class隻是告訴編譯器,其後面聲明的名稱是類的名稱在頭文件中, 一般隻需要知道被引用的類的名稱就可以瞭。 不需要知道其內部的實體變量和方法,所以在頭文件中一般使用@class來聲明這個名稱是類的名稱。 而在實現類裡面,因為會用到這個引用類的內部的實體變量和方法,所以需要使用#import來包含這個被引用類的頭文件。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *