在什么場景下使用Category呢?如果你遇到:
1、當你在定義類的時候,在某些情況下(例如需求變更),你可能想要為其中的某個或幾個類中添加方法。
2、一個類中包含了許多不同的方法需要實現,而這些方法需要不同團隊的成員實現。
3、當你在使用基礎類庫中的類時(比如NSString),你可能希望這些類實現一些你需要的方法。
那么,Category可以幫助你解決問題。當然,使用Category也有注意事項:
1、Category可以訪問原始類的實例變量,但不能添加變量,如果想添加變量,可以考慮通過繼承創建子類。
2、Category可以重載原始類的方法,但不推薦這么做,這么做的后果是你再也不能訪問原來的方法。如果確實要重載,正確的選擇是創建子類。
3、和普通接口有所區別的是,在分類的實現文件中可以不必實現所有聲明的方法,只要你不去調用它。
用好Category可以充分利用Objective-C的動態特性,編寫出靈活簡潔的代碼。