無論一個類設計的如何完美,都不可避免的會遇到沒有預測到的需求,那怎么擴展現有的類呢?當然,繼承是個不錯的選擇。但是Objective-C提供了一種特別的方式來擴展類,叫Catagory,可以動態的為已經存在的類添加新的行為。這樣可以保證類的原原來的基礎上,較小的改動就可以增加需要的功能。使用Category對類進行擴展時,不需要訪問其源代碼,也不需要創建子類,這樣我們可以擴展系統提供的類。Category使用簡單的方式,實現了類的相關方法的模塊化,把不同的類方法分配到不同的分類文件中。
使用Object-C中的分類Category,是一種編譯時的手段,允許我們通過給一個類添加方法來擴充它(但是通過category不能添加新的實例變量),并且我們不需要訪問類中的代碼就可以做到,這點和javascript中使用原型來定義屬性有點類似。
我們可以為一個類創建一個新的方法,而不需要在代碼中編輯類定義。
下面就是定義并使用分類的例子程序,通過下面代碼,我們可以給Object-C中的NSString 添加camelCaseString分類,使用camelCaseString方法,就可以去掉一個字符串中的空格,并將原有空格后的單詞改寫成大寫(即將字符串轉化為駝峰式)。
通過一個簡單的例子看看Category如何使用。
新聞熱點
疑難解答