OC-@dynamic 关键字
生活随笔
收集整理的這篇文章主要介紹了
OC-@dynamic 关键字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@dynamic這個關鍵詞,通常是用不到的。
它與@synthesize的區別在于:
使用@synthesize編譯器會確實的產生getter和setter方法,而@dynamic僅僅是告訴編譯器這兩個方法在運行期會有的,無需產生警告。
假設有這么個場景,B類,C類分別繼承A類,A類實現某個協議(@protocol),協議中某個屬性( somePropety?)我不想在A中實現,而在B類,C類中分別實現。如果A中不寫任何代碼,編譯器就會給出警告:
“use @synthesize, @dynamic or provide a method implementation"
這時你給用@dynamic?somePropety; 編譯器就不會警告,同時也不會產生任何默認代碼。
@dynamic 就是要來告訴編譯器,代碼中用@dynamic修飾的屬性,其getter和setter方法會在程序運行的時候或者用其他方式動態綁定,以便讓編譯器通過編譯。其主要的作用就是用在NSManageObject對象的屬性聲明上,由于此類對象的屬性一般是從Core Data的屬性中生成的,Core Data框架會在程序運行的時候為此類屬性生成getter和Setter方法。
總結
以上是生活随笔為你收集整理的OC-@dynamic 关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS CoreTelephony框架介
- 下一篇: Swift傻傻分不清楚系列(十二) 属性