iOS - 知識梳理 (雜集)
因為有些知識點比較小,不想浪費篇幅單獨弄一篇部落格,所以把一些小的知識點記錄在一篇裡面,方便查閱。
1.Category 會覆蓋掉原來類裡的方法嗎?
答案是會的,將category生成對應的cpp檔案會看到它的結構,
struct _category_t { const char *name; struct _class_t *cls; const struct _method_list_t *instance_methods; const struct _method_list_t *class_methods; const struct _protocol_list_t *protocols; const struct _prop_list_t *properties; };
例項方法列表,類方法列表,協議列表,屬性列表,但是沒有例項變數列表。即使添加了屬性也只是添加了setter和 getter方法。
系統在執行時將category對應的例項方法、類方法等都插入到了原來類或元類的方法列表中去了,而且是放在前邊,所以通過isa指標去查詢方法的話,優先是呼叫category中的。所以是category會覆蓋掉原來類實現的方法。
相關推薦
iOS - 知識梳理 (雜集)
因為有些知識點比較小,不想浪費篇幅單獨弄一篇部落格,所以把一些小的知識點記錄在一篇裡面,方便查閱。 1.Category 會覆蓋掉原來類裡的方法嗎? 答案是會的,將category生成對應的cpp檔案會看到它的結構, struct _category_t { const char *na
iOS 知識梳理(響應鏈)
一直在寫程式碼,忙忙碌碌卻碌碌無為,所以最近想稍微沉澱一下,補充一下自己的理論基礎,先從最常用的響應鏈開始吧。。。 一、如何理解iOS的響應鏈? 第一要明確的是能夠接受和處理事件的響應者都是UIResponder的例項,包括UIView,UIViewController,UIApplicat
iOS-知識梳理(觀察者模式-KVO、NSNotification的實現原理.KVC原理)
觀察者模式的定義:一個目標物件管理所有依賴於它的觀察者物件,並在它自身的狀態改變時主動通知觀察者物件。這個主動通知通常是通過呼叫各觀察者物件所提供的介面方法來實現的。觀察者模式較完美地將目標物件與觀察者物件解耦。 KVO基於runtime實現,當你觀察一個物件的時候,一個新類被動態建立繼承於
iOS - 知識梳理 (類探究、 isa)
OC比C多了面向物件,那麼是如何做到的呢,今天大致瞭解一下類的構成。 首先要明確的一點是:oc當中類的定義也是物件,類和類的例項化物件 都是物件,所有物件都有isa指標。 typedef struct objc_class *Class; oc的class 實質是objc_class的結
iOS -知識梳理(property關鍵字 copy-mutableCopy區別)
atomic : 原子操作,預設屬性,setter方法會變成下面的樣子 {lock} if (_a != a) { [_a release]; _a = [a retain]; } {unlock} 但是該關鍵字不能保證該變數的執行
ios - 知識梳理(造成記憶體洩漏的原因)
block的迴圈引用 [self.service requestData:^(id data) { self.title = data[@"title"]; }]; 這種情況就是典型的迴圈引用導致記憶體洩漏,self強引用service, service強引用了block,
iOS - 知識梳理(多執行緒)
多執行緒:一個程序裡面開啟多條執行緒,每條執行緒可以單獨的執行不同的任務。 iOS實現多執行緒的方式: 1、pthread(C寫的、基本不用) 2、NSThread 3、gcd 4、NSOperation 下面分別介紹下後三個常用的多執行緒方式 NSThread: 使用方式
iOS-知識梳理(觀察者模式-KVO、NSNotification的實現原理)
觀察者模式的定義:一個目標物件管理所有依賴於它的觀察者物件,並在它自身的狀態改變時主動通知觀察者物件。這個主動通知通常是通過呼叫各觀察者物件所提供的介面方法來實現的。觀察者模式較完美地將目標物件與觀察者物件解耦。 KVO基於runtime實現,當你觀察一個物件的時候,一個新
【SQL】- 基礎知識梳理(四) - 存儲過程
var isp spl 更改 option fault 結果 特定 num 存儲過程的概念 存儲過程Procedure是一組為了完成特定功能的SQL語句集合,經編譯後存儲在數據庫中,用戶通過指定存儲過程的名稱並給出參數來執行 存儲過程的好處 A、 存儲過程允許標準組件式編
【SQL】- 基礎知識梳理(六) - 遊標
test 觸發器 刪除 管理系統 一支 spa eal har str 遊標的概念 結果集,結果集就是select查詢之後返回的所有行數據的集合。 遊標(Cursor): 是處理數據的一種方法。 它可以定位到結果集中的某一行,對數據進行讀寫。 也可以移動遊標定位到你需要的
【SQL】- 基礎知識梳理(八) - 事務與鎖
隔離性 rep del 數據表 訪問 關系 snapshot 轉換 pro 事務的概念 事務:若幹條T-SQL指令組成的一個操作數據庫的最小執行單元,這個整體要麽全部成功,要麽全部失敗。(並發控制) 事務的四個屬性:原子性、一致性、隔離性、持久性。稱為事務的ACID特性。
web基礎知識梳理(筆記)
信息 空間 超文本 登錄訪問 trac xslt web基礎 request blog http(1.1)知識點 http協議概念 http協議是用於客戶端和服務器端之間的超文本傳輸協議,通過請求和響應實現通信,是一種無狀態協議(即對請求和響應不會做持久化處理)。 http
Oracle知識梳理(一)理論篇:基本概念和術語整理
http 知識梳理 屬性集 操作 url 本質 開發 表格 weight 理論篇:基本概念和術語整理 一、關系數據庫 關系數據庫是目前應用最為廣泛的數據庫系統,它采用關系數據模型作為數據的組織方式,關系數據模型由關系的數據結構,關系的操作集合和關系的完整
作業系統知識整理 - 知識梳理(聽說有人還不知道作業系統講了點啥?)
主要內容 作業系統的基本目標 作業系統的作用 作業系統的作用方式 作業系統的發展歷史 作業系統的基本型別 作業系統的基本特性 作業系統的主要功能(important) 處理機管理功能 儲存器管理功能 外圍裝置管理功能 檔案管理功能
C++ 重點知識梳理 (一) --------- 重點關鍵字及其用法
本文總結一下C++面試時常遇到的問題。C++面試中,主要涉及的考點有 關鍵字極其用法,常考的關鍵字有const, sizeof, typedef, inline, static, extern, new, delete等等 語法問題 型別轉換 指標以及指標和引用的
C++ 重點知識梳理(三) -------- 型別轉換、指標
dynamic_cast:該轉換符用於將一個指向派生類的基類指標或引用轉換為派生類的指標或引用。 const_cast:最常用的用途就是刪除const屬性。 static_cast:static_cast本質上是傳統c語言強制轉換的替代品,比C型別轉換更嚴格, 該操作符用於非多型型別的轉換,任何標準轉換都
C++ 重點知識梳理(四) -------- 面向物件
五、面向物件 5.1 面向物件的三大特性 三大特性:封裝,繼承,多型 封裝:封裝是實現面向物件程式設計的第一步,封裝就是將資料或函式等集合在一個個的單元中(我們稱之為類)。封裝的意義在於保護或者防止程式碼(資料)被我們無意中破壞。 繼承:繼承主要實現重用程式碼,節
C++ 重點知識梳理(五) --------- 泛指型別
六、泛型程式設計 6.1 使用模板的優點和缺點? 優點: 在一些場景可以避免重複程式碼 有些問題難以使用OO技巧(如繼承和多型)來實現,而使用模版會很方便 template classes更加的型別安全,因其引數型別在編譯時都是已知的。 缺點: 一些編譯器對tem
C++ 重點知識梳理(六) -------- 編譯和連結
八、編譯和連結? 8.1 動態連結庫和靜態連結庫的區別? 用今天的眼光來看,動態連結庫節約記憶體這個優點越來越不重要了,特別是在伺服器上:a)、現在PC的記憶體都很大,指令佔用那一點空間已經微不足道了;b)、由於動態連結庫衝突等問題,越來越多的伺服器應用更傾向於把所有
C++ 重點知識梳理(八) -------- 實現函式和類
九、實現函式和類 9.1 char *strcpy(char *dst, const char *src); http://blog.csdn.net/yangquanhui1991/article/details/51804600 char *strcpy(char *