• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            羅朝輝(飄飄白云)

            關(guān)注嵌入式操作系統(tǒng),移動平臺,圖形開發(fā)。-->加微博 ^_^

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              85 隨筆 :: 0 文章 :: 169 評論 :: 0 Trackbacks

            #

                 摘要: 如果我們在 Objective C 中向一個(gè)對象發(fā)送它無法處理的消息,會出現(xiàn)什么情況呢?根據(jù)前文《深入淺出Cocoa之消息》的介紹,我們知道發(fā)送消息是通過 objc_send(id, SEL, ...) 來實(shí)現(xiàn)的,它會首先在對象的類對象的 cache,method list 以及父類對象的 cache, method list 中依次查找 SEL 對應(yīng)的 IMP;如果沒有找到且實(shí)現(xiàn)了動態(tài)方法決議機(jī)制就會進(jìn)行決議,如果沒有實(shí)現(xiàn)動態(tài)方法決議機(jī)制或決議失敗且實(shí)現(xiàn)了消息轉(zhuǎn)發(fā)機(jī)制就會進(jìn)入消息轉(zhuǎn)發(fā)流程,否則程序 crash。也就是說如果同時(shí)提供了動態(tài)方法決議和消息轉(zhuǎn)發(fā),那么動態(tài)方法決議先于消息轉(zhuǎn)發(fā),只有當(dāng)動態(tài)方法決議依然無法正確決議 selector 的實(shí)現(xiàn),才會嘗試進(jìn)行消息轉(zhuǎn)發(fā)。在前文中,我并沒有詳細(xì)講解動態(tài)方法決議,因此本文將詳細(xì)介紹之。  閱讀全文
            posted @ 2012-11-14 23:53 羅朝輝 閱讀(2353) | 評論 (0)編輯 收藏

                 摘要: iOS 游戲開發(fā)教程資源,來自 http://www.raywenderlich.com  閱讀全文
            posted @ 2012-11-10 22:45 羅朝輝 閱讀(1079) | 評論 (0)編輯 收藏

                 摘要: 在前一篇《[深入理解C++(一)]類型轉(zhuǎn)換(Type Casting)》中,我詳細(xì)講述了 C++ 中轉(zhuǎn)型動作,以及使用規(guī)則。有網(wǎng)友說應(yīng)該提及下《深度探索 C++ 對象模型》一書中的內(nèi)容,其實(shí)他的意思是,要是對 C++ 對象的內(nèi)存布局不甚了解,就想要徹悟C++中的類型轉(zhuǎn)型,對象切割,虛函數(shù)調(diào)用等,猶如脫離了堅(jiān)實(shí)的根基,想去建空中閣樓。理解 C++ 對象的內(nèi)存布局對學(xué)會 C++來說至關(guān)重要,但我不打算寫 C++ 對象的內(nèi)存布局相關(guān)的文章,因?yàn)橐驹谇叭说募绨蛏希笈j愷?已經(jīng)就這個(gè)主題寫了三篇圖文并茂的文章:
            (一),C++ 虛函數(shù)表解析
            (二),C++ 對象的內(nèi)存布局(上)
            (三),C++ 對象的內(nèi)存布局(下)

            在繼續(xù)閱讀本文之前,建議先閱讀這三篇文章,以更好地理解本系列文章。在接下來的內(nèi)容中,我將從重載,重寫,屏蔽等概念入手,引入眾多接口繼承規(guī)則。  閱讀全文
            posted @ 2012-11-06 21:21 羅朝輝 閱讀(3216) | 評論 (5)編輯 收藏

                 摘要: 類型轉(zhuǎn)換就是將給定類型的表達(dá)式轉(zhuǎn)換為另一種類型。C++中的轉(zhuǎn)型可分為兩種:隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換。下面將詳細(xì)介紹這兩種轉(zhuǎn)型操作,以及各自的適用場景,潛在問題,最終將總結(jié)使用類型轉(zhuǎn)換操作應(yīng)牢記的原則。  閱讀全文
            posted @ 2012-10-28 21:44 羅朝輝 閱讀(6952) | 評論 (2)編輯 收藏

                 摘要: 當(dāng) timeout = 0, 即 Sleep(0),如果線程調(diào)度器的可運(yùn)行隊(duì)列中有大于或等于當(dāng)前線程優(yōu)先級的就緒線程存在,操作系統(tǒng)會將當(dāng)前線程從處理器上移除,調(diào)度其他優(yōu)先級高的就緒線程運(yùn)行;如果可運(yùn)行隊(duì)列中的沒有就緒線程或所有就緒線程的優(yōu)先級均低于當(dāng)前線程優(yōu)先級,那么當(dāng)前線程會繼續(xù)執(zhí)行,就像沒有調(diào)用 Sleep(0)一樣。

            當(dāng) timeout > 0 時(shí),如:Sleep(1),會引發(fā)線程上下文切換:調(diào)用線程會從線程調(diào)度器的可運(yùn)行隊(duì)列中被移除一段時(shí)間,這個(gè)時(shí)間段約等于 timeout 所指定的時(shí)間長度。為什么說約等于呢?是因?yàn)樗邥r(shí)間單位為毫秒,這與系統(tǒng)的時(shí)間精度有關(guān)。通常情況下,系統(tǒng)的時(shí)間精度為 10 ms,那么指定任意少于 10 ms但大于 0 ms 的睡眠時(shí)間,均會向上求值為 10 ms。  閱讀全文
            posted @ 2012-10-11 20:04 羅朝輝 閱讀(6845) | 評論 (2)編輯 收藏

                 摘要: XCode 內(nèi)置GDB,我們可以在命令行中使用 GDB 命令來調(diào)試我們的程序。下面將介紹一些常用的命令以及調(diào)試技巧。  閱讀全文
            posted @ 2012-01-31 16:19 羅朝輝 閱讀(3271) | 評論 (0)編輯 收藏

                 摘要: 在前文中總結(jié)到“ObjC 為每個(gè)類的定義生成兩個(gè) objc_class ,一個(gè)即普通的 class,另一個(gè)即 metaclass。我們可以在運(yùn)行期創(chuàng)建這兩個(gè) objc_class 數(shù)據(jù)結(jié)構(gòu),然后使用 objc_addClass 動態(tài)地創(chuàng)建新的類定義。”今天我們來如何在運(yùn)行時(shí)動態(tài)創(chuàng)建類。下面這個(gè)函數(shù)就是應(yīng)用前面講到的Class,MetaClass的概念,在運(yùn)行時(shí)動態(tài)創(chuàng)建一個(gè)類。  閱讀全文
            posted @ 2012-01-30 14:05 羅朝輝 閱讀(4650) | 評論 (2)編輯 收藏

                 摘要: 最近打算寫一些ObjC中比較底層的東西,尤其是 runtime 相關(guān)的。從哪里入手呢?那當(dāng)然是最基本的類與對象。與C++相比,ObjC中的類與對象結(jié)構(gòu)要簡潔與一致得多(參考《深度探索C++對象模型》,你就知道C++中類與對象結(jié)構(gòu)的復(fù)雜)。本文將詳細(xì)講解ObjC中類與對象的結(jié)構(gòu),下回將講如何在 runtime 時(shí)操作類。

            總結(jié):ObjC 為每個(gè)類的定義生成兩個(gè) objc_class ,一個(gè)即普通的 class,另一個(gè)即 metaclass。我們可以在運(yùn)行期創(chuàng)建這兩個(gè) objc_class 數(shù)據(jù)結(jié)構(gòu),然后使用 objc_addClass 動態(tài)地創(chuàng)建新的類定義。這個(gè)夠動態(tài)夠強(qiáng)大的吧?下回講演示如何在運(yùn)行期動態(tài)創(chuàng)建新類。  閱讀全文
            posted @ 2012-01-19 16:58 羅朝輝 閱讀(4710) | 評論 (5)編輯 收藏

                 摘要: 在前文深入淺出Cocoa之消息中,我簡要介紹了ObjC 中消息的基本情況,包括SEL查找,緩存以及消息轉(zhuǎn)發(fā)等。在本文中,我要介紹一個(gè)很有趣的技術(shù),Method swizzling,通過這個(gè)手法,我們可以動態(tài)修改方法的實(shí)現(xiàn),從而達(dá)到修改類行為的目的。當(dāng)然,還有其他辦法(如 ClassPosing,Category)也可以達(dá)到這個(gè)目的。ClassPosing 是針對類級別的,是重量級的手法,Category 也差不多,比較重量級,此外 Category 還無法避免下面的遞歸死循環(huán)(如果你的代碼出現(xiàn)了如下形式的遞歸調(diào)用,應(yīng)該考慮一下你的設(shè)計(jì),而不是使用在這里介紹的 Method Swizzling 手法,:))。  閱讀全文
            posted @ 2012-01-05 17:02 羅朝輝 閱讀(2513) | 評論 (4)編輯 收藏

                 摘要: Three20 是 facebook 開源的一款功能齊全又強(qiáng)大的庫,覆蓋 UI,network,JSON/XML解析等。其 github 倉庫在這里:https://github.com/facebook/three20 ,這個(gè)頁面也有如何在工程中添加 three20 庫的介紹,不過在 Lion 系統(tǒng)下以及 xcode 4.2 下有些許不同,英文好的同學(xué)可以參看原文?,F(xiàn)整理如下:  閱讀全文
            posted @ 2011-12-31 17:45 羅朝輝 閱讀(2780) | 評論 (0)編輯 收藏

            列出全部內(nèi)容
            共9頁: 1 2 3 4 5 6 7 8 9 
            99久久精品国产麻豆| 日本久久久久亚洲中字幕| 久久国产影院| 久久婷婷是五月综合色狠狠| 国产成人精品三上悠亚久久| A狠狠久久蜜臀婷色中文网| 国产亚洲精久久久久久无码AV| 久久久久av无码免费网| 久久天堂电影网| 漂亮人妻被黑人久久精品| 日本久久中文字幕| 久久久久亚洲AV无码永不| 久久无码人妻精品一区二区三区| 久久久久国产精品熟女影院| 亚洲国产日韩欧美久久| 热99re久久国超精品首页| 蜜臀av性久久久久蜜臀aⅴ| 人人狠狠综合久久亚洲| 国内精品欧美久久精品| 高清免费久久午夜精品| 久久亚洲精品国产精品| 成人综合久久精品色婷婷| 久久成人18免费网站| 91精品国产色综合久久| 亚洲愉拍99热成人精品热久久| 色青青草原桃花久久综合| 国内精品久久久久国产盗摄| 久久这里只精品国产99热| 亚洲va久久久噜噜噜久久男同| 99久久做夜夜爱天天做精品| 久久无码精品一区二区三区| 精品无码久久久久久久动漫| 国产激情久久久久影院| 夜夜亚洲天天久久| 国产免费久久精品99久久| 国产99久久久国产精免费| 久久国产精品二国产精品| 久久高潮一级毛片免费| 一级做a爰片久久毛片毛片| 亚洲精品无码久久久久AV麻豆| 亚洲第一永久AV网站久久精品男人的天堂AV |