一些關鍵字的記錄

__block:支持MRC & ARC。應該是提升了變量的作用域,使得在 block 內部和外部所訪問的是同一個變量。

__weak:支持ARC。主要用於在block中避免循環引用。

__strong:支持ARC。作用類似Retain,可以跟__weak配合,保證在block範圍內變量可用。(參考AFNetworking 源碼)

__weak __typeof(self)weakSelf = self; self.backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^{ __strong __typeof(weakSelf)strongSelf = weakSelf; if (handler) { handler(); } if (strongSelf) { [strongSelf cancel]; [application endBackgroundTask:strongSelf.backgroundTaskIdentifier]; strongSelf.backgroundTaskIdentifier = UIBackgroundTaskInvalid; } }];

typeof__typefo__typeof__:帶下劃線的兩種是舊的c編譯器支持的擴展方式,而不帶下劃線的是現代編譯器支持的方式,目前大部分編譯器都已支持該方式。clang編譯器一樣支持。

__unused:gcc編譯器宏定義__attribute__((unused))的縮寫,目的是告訴編譯器,如果該參數或變量沒有被使用,也不要報warning。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章