• <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>

            羅朝輝(飄飄白云)

            關注嵌入式操作系統,移動平臺,圖形開發。-->加微博 ^_^

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

            Cocoa 開發

            Mac, iPhone/iPad開發相關的東東
                 摘要: KVO 并不是什么新事物,換湯不換藥,它只是觀察者模式在 Objective C 中的一種運用,這是 KVO 的指導思想所在。其他語言實現中也有“KVO”,如 WPF 中的 binding。而在 Objective C 中又是通過強大的 runtime 來實現自動鍵值觀察的。本文對 KVO 的使用以及注意事項,內部實現都詳細介紹了一番,對 KVO 的理解又深入一層了。Objective 中的 KVO 雖然可以用,但卻非完美,有興趣的了解朋友請查看《KVO 的缺陷》 以及改良實現 MAKVONotificationCenter 。  閱讀全文
            posted @ 2012-11-17 17:41 羅朝輝 閱讀(21883) | 評論 (4)  編輯

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

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

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

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

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

            總結:ObjC 為每個類的定義生成兩個 objc_class ,一個即普通的 class,另一個即 metaclass。我們可以在運行期創建這兩個 objc_class 數據結構,然后使用 objc_addClass 動態地創建新的類定義。這個夠動態夠強大的吧?下回講演示如何在運行期動態創建新類。  閱讀全文
            posted @ 2012-01-19 16:58 羅朝輝 閱讀(4709) | 評論 (5)  編輯

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

                 摘要: 使用 OCMock 進行 unit test 時,我們無法使用 stub 或 expect 測試類方法,那么又該怎樣測試類方法呢?
            下面是一個解決辦法:在測試類中的非類方法 wrap 一下類方法,然后測試 wrap 方法。  閱讀全文
            posted @ 2011-12-27 14:34 羅朝輝 閱讀(2279) | 評論 (0)  編輯

                 摘要: XCode 內置了 OCUnit 單元測試框架,但目前最好用的測試框架應該是 GHUnit。通過 GHUnit + OCMock 組合,我們可以在 iOS 下進行較強大的單元測試功能。本文將演示如何在 XCode 4.2 下使用 OCUnit, GHUnit 和 OCMock 進行 iOS 單元測試。  閱讀全文
            posted @ 2011-12-23 14:12 羅朝輝 閱讀(3004) | 評論 (1)  編輯

                 摘要: 花了幾天時間,在 iPad 上做了一個簡陋的 Dicom Viewer,這個查看器沒有使用 DCMTK 庫(雖然可用,但太龐大,造造輪子亦有樂趣),而是自己移植了一個 Dicom 文件解析器(Thanks to Amarnath S and his great post.)。該Dicom 文件解析器以及開源,源代碼在這里 or https://github.com/kesalin/DicomViewer。
            先來看看效果圖:  閱讀全文
            posted @ 2011-11-18 06:51 羅朝輝 閱讀(9586) | 評論 (0)  編輯

                 摘要: DCMTK是德國 Offis 公司開發的實現 DICOM 協議的跨平臺開源 C++庫,在醫學領域里是很有名的,它支持Windows ,Linux,Mac OS,SUN等平臺。不過貌似在 iOS 平臺上編譯 DCMTK 的文檔很少很少,折騰了好久終于編譯成功了,記錄下來。  閱讀全文
            posted @ 2011-11-10 12:59 羅朝輝 閱讀(9345) | 評論 (13)  編輯

                 摘要: 前文已經說了如何配置服務器,下面來演示如何創建一個新倉庫,然后與 XCode 結合。  閱讀全文
            posted @ 2011-11-08 17:54 羅朝輝 閱讀(8661) | 評論 (0)  編輯

                 摘要: XCode 默認支持 Git 作為代碼倉庫,當我們新建一個倉庫的時候,可以勾選創建默認倉庫,只不過這個倉庫是在本地的。本文介紹如何在 mac 機器上創建 Git 服務器,總體思路是:使用 gitosis 來簡化創建過程,在用作服務器的機器上創建一個名為 git 的賬戶來創建 git 服務器,其他客戶端通過 ssh 機制訪問 git 服務器。  閱讀全文
            posted @ 2011-11-07 16:09 羅朝輝 閱讀(9776) | 評論 (2)  編輯

                 摘要: [譯]蘋果 Cocoa 編碼規范中文版
            官方文檔:Coding Guidelines for Cocoa
            本文檔下載:點擊這里  閱讀全文
            posted @ 2011-11-03 16:02 羅朝輝 閱讀(5505) | 評論 (1)  編輯

                 摘要: Objective C 的類方法(class method),即 static 方法,是用 + 修飾的方法。類方法是屬于類對象的,所以無需創建類的實例對象我們就可以直接使用它們。使用形式為:
            [ClassName classMethod];
            在這里 ClassName 代表的就是一個類對象,而不是作為一種類型。類名只有出現在接收消息的表達式中才代表一個類對象,其他情況下都表示一種類型。  閱讀全文
            posted @ 2011-11-01 17:14 羅朝輝 閱讀(2801) | 評論 (2)  編輯

            Full Cocoa 開發 Archive

            88久久精品无码一区二区毛片| 中文字幕久久精品| 国产精品美女久久久久网| 久久国产乱子精品免费女| 国内精品久久久久久久涩爱| 亚洲精品WWW久久久久久 | 久久人做人爽一区二区三区| 亚洲国产精品无码久久| 一本大道加勒比久久综合| 无码任你躁久久久久久老妇App| 日日噜噜夜夜狠狠久久丁香五月| 久久精品国产免费| 麻豆亚洲AV永久无码精品久久| 激情五月综合综合久久69| 亚洲香蕉网久久综合影视| 久久精品成人| 国产成人精品久久一区二区三区av| 久久久久久久波多野结衣高潮 | 综合久久精品色| 99久久精品国产一区二区蜜芽| 国产成年无码久久久免费| 久久精品二区| 91麻豆精品国产91久久久久久| 久久精品国产99国产精品导航| 欧美久久一级内射wwwwww.| 久久精品国产亚洲沈樵| 久久国产亚洲高清观看| 久久久久av无码免费网| 久久伊人精品一区二区三区| 亚洲午夜久久久| 亚洲国产精品综合久久网络| 久久精品国产亚洲Aⅴ香蕉| 7国产欧美日韩综合天堂中文久久久久 | 香蕉久久夜色精品国产尤物| 99久久国产综合精品成人影院| 久久精品九九亚洲精品天堂| 精品乱码久久久久久久| 国内精品久久久久久99| 久久不见久久见免费视频7| 久久国产欧美日韩精品| 久久青草国产手机看片福利盒子|