摘要:
在C/C++中,內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。 棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區。里面的變量通常是局部變量、函數參數等。 堆,就是那些由new分配的內存塊,他們的釋放編譯器不去管,由我們的應用程序去控制,一般一... 閱讀全文
posted @ 2015-06-26 14:32
轉身看見海
閱讀(216)
評論(0)
推薦(0)
摘要:
使用 weak–strong dance 技術block 可以直接引用 self,但是要非常小心地在 block 中引用 self。因為在 block 引用 self,可能會導致循環引用。如下例所示:[objc] view plaincopy@interfaceKSViewController(){... 閱讀全文
posted @ 2015-06-26 10:47
轉身看見海
閱讀(553)
評論(0)
推薦(0)
摘要:
主要內容:一、block相關的題目二、block的定義三、block的實現四、捕獲自動變量值五、block存儲區域六、截獲對象一、block相關的題目這是一篇比較長的博文,前部分是block的測試題目,中間是block的語法、特性,block講解block內部實現和block存儲位置,請讀者耐心閱讀... 閱讀全文
posted @ 2015-06-26 10:45
轉身看見海
閱讀(275)
評論(0)
推薦(0)
摘要:
Block存儲區域首先,需要引入三個名詞:● _NSConcretStackBlock● _NSConcretGlobalBlock● _NSConcretMallocBlock正如它們名字顯示得一樣,表明了block的三種存儲方式:棧、全局、堆。block對象中的isa的值就是上面其中一個,下面開... 閱讀全文
posted @ 2015-06-26 10:27
轉身看見海
閱讀(385)
評論(0)
推薦(0)
摘要:
一、捕獲自動變量值首先看一個經典block面試題:[objc] view plaincopyintval=10;void(^blk)(void)=^{printf("val=%d\n",val);};val=2;blk(); 上面這段代碼,輸出值是:val = 10.而不是2. block 在實... 閱讀全文
posted @ 2015-06-26 10:23
轉身看見海
閱讀(458)
評論(0)
推薦(0)
摘要:
主要內容:1. 開始使用block(Getting Started with Blocks)2. block概念綜述(Conceptual Overview)3. 聲明和創建block(Declaring and Creating Blocks)4. block和變量(Blocks and Vari... 閱讀全文
posted @ 2015-06-26 10:19
轉身看見海
閱讀(783)
評論(0)
推薦(0)
摘要:
本文的主要內容:ARC的本質ARC的開啟與關閉ARC的修飾符ARC與BlockARC與Toll-Free BridgingARC的本質ARC是編譯器(時)特性,而不是運行時特性,更不是垃圾回收器(GC)。Automatic Reference Counting (ARC) is a compiler... 閱讀全文
posted @ 2015-06-26 10:04
轉身看見海
閱讀(194)
評論(0)
推薦(0)
浙公網安備 33010602011771號