本文為大地瓜原創,歡迎知識共享,轉載請注明出處。
雖然你不注明出處我也沒什么精力和你計較。
作者微信號:christgreenlaw
property修飾符
- 相同類型的修飾符不能同時使用。
- 不同類型的修飾符可以結合使用,中間用逗號隔開
- iOS開發中只要寫了property,馬上寫上nonatomic
readonly 只生成getter
readwrite getter和setter都會生成,什么都不寫默認就是這樣
getter 給getter起名
setter 給setter起名//這兩個可以同時用,它們不是互斥關系
retain 會生成內存管理的方法
assign 不會生成內存管理的方法,默認就是這個
@class指令
#import是一個預編譯指令,會將""中的內容拷貝到import所在的位置
#import有一個特點,若""中的文件發生變化,則會重新拷貝一次
@class只是告訴編譯器,@class后面是一個類,而不會做任何拷貝操作
但也正是由于它沒有做拷貝操作,編譯器并不知道這個類都有什么屬性和方法,需要在.m中正式使用時再#import一下
在類似于.h的情況下,如果只需要使用類型而不需要使用實例對象做一些操作的話,可以使用@class來提升編譯效率
@class也可以用來處理循環拷貝的問題,若A.h中import B.h, B.h中import A.h,則會循環拷貝。此時可以在.h中使用@class,.m中使用import,既提升編譯效率,又不會引用循環。
實際上,建議:任何時候優先考慮@class,在真正需要使用某個類做操作時再使用import。盡可能提高效率。