原创 NSTimer說明
NSTimer 看到這個標題,你可能會想NSTimer不就是計時器嗎,誰不會用,不就是一個能夠定時的完成任務的東西嗎? 我想說你知道NSTimer會retain你添加調用方法的對象嗎?你知道NSTimer是要加到runloo
原创 linux核list_for_each_entry(pos, head, member)分析
這裏大概敘述了typeof是一個什麼東西,怎麼用,實際上可以用簡單的話來重述。如果你對sizeof很熟悉的話,那麼大可進行類推,sizeof(exp.)返回的是exp.的數據類型大小,那麼typeof(exp.)返回的就是exp.的 數
原创 hlist哈系鏈表
內核中,使用list_head作爲鏈表,該數據結構本身即使head又是node。如果將它作爲hash list的頭節點,那麼每個頭節點會佔用8個字節。因此內核中對其優化,使用hlist_head作爲hash表的頭節點。內核中定義其數據結
原创 求1+2+...+n
題目: 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。 解法: 採取模版元編程即可。 代碼: template <int N> struct
原创 Objective-C 線程開發總結
NSThread, NSOperation, GCD 1>無論使用哪種方法進行多線程開發,每個線程啓動後並不一定立即執行相應的操作,具體什麼時候由系統調度(CPU空閒時就會執行)。 2>更新UI應該在主線程(UI線程)中進行,並且推
原创 #define f(a, b) a##b
表示L與x連接。以下來自網絡:#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #xx##y表示什麼?表示x連接y,舉例說:int n = Conn(123,45
原创 @synchronized()說明
Objective-C @synchronized(self) { //something like this // codes } Swift: func synchronize<T>(lockObj: A
原创 IOS內存管理
1. 內總管理原則(引用計數) IOS的對象都繼承於NSObject, 該對象有一個方法:retainCount ,內存引用計數。 引用計數在很多技術都用到: window下的COM組件,多線程的信號量,讀寫鎖,思想都一樣
原创 關於(void)(&min1 == &min2)的問題和宏define min(a, b)
宏定義: #define min(x, y) / ({ / typeof
原创 Objective-C的鎖機制
NSLock iOS中對於資源搶佔的問題可以使用同步鎖NSLock來解決,使用時把需要加鎖的代碼(以後暫時稱這段代碼爲”加鎖代碼“)放到NSLock的lock和unlock之間,一個線程A進入加鎖代碼之後由於已經加鎖,另一個線程B就無
原创 從上往下打印樹節點
題目:輸入一顆二元樹,從上往下按層打印樹的每個結點,同一層中按照從左往右的順序打印。 例如輸入 8 / \ 6 10 / \ / \ 5 7 9 11 輸出8 6 10 5 7 9 11。 解法1: 採用 STL 的m
原创 求二叉樹中節點的最大距離
如果我們把二叉樹看成一個圖, 父子節點之間的連線看成是雙向的, 我們姑且定義"距離"爲兩節點之間邊的個數。 寫一個程序, 求一棵二叉樹中相距最遠的兩個節點之間的距離。 思路:運用遞歸算法即可, void maxedge(BSTree r
原创 AFNetworking和ASIHttpReust的對比
ASI和AFN以及底層框架的關係 對比 ASI AFN 更新狀態 2012年10月份,已經停止更新 持續更新中,目前已更新至2.0版 介紹 ASI的直
原创 Run Loop詳細說明
Run loops是線程的基礎架構部分。一個run loop就是一個事件處理循環,用來不停的調配工作以及處理輸入事件。使用run loop的目的是使你的線程在有工作的時候工作,沒有的時候休眠。 Run loop的管理並不完全是自動的。
原创 Swift 的元組介紹
元組的定義 元組是Objective-C中沒有的數據類型,與數組類似,都是表示一組數據的集合,但與數組不同,它的特點是: 元組的長度任意元組中的數據可以是不同的數據類型 元組的定義很簡單,用小括號括起來,然後以逗號隔開就可以了,如