2017-02-14 94 views
0

這基本上是一個設計問題。我的應用程序中有大量代碼行的控制器。我想減少行數,爲此我使用了一個類別。我們是否應該從自己調用類別方法

贊如果我有UIViewController子類,並且我在該子類上創建了一個類別。現在我想從UIViewController子類調用一個類別方法。

我有問題應該調用[self categoryMethod]還是不?

感謝您的回覆!

+0

您正在創建哪個類別的類別?基於你的電話會工作。請讓我們瞭解一點代碼或類別。 – CodeChanger

+0

嗨@CodeChange我已編輯我的問題。抱歉,我無法在此處添加代碼。 –

+0

爲什麼不呢?你正在調用你正在使用的UIViewController的特定實例的方法,它不會對其他實例做任何事情 – Tj3n

回答

0

是的,你可以打電話給類別方法自我對象作爲其同類對象UIVIewController所以沒有任何問題。

這裏有一些更詳細爲什麼我們需要類別:

您使用類別來確定的其他方法的現有 類,就算他家的源代碼是不可用的你,不 子類。您通常使用類別向 現有類添加方法,例如在Cocoa frameworks中定義的類。添加的 方法由子類繼承,並且在類的原始方法的 運行時無法區分。您還可以使用 類別自己的類來:

  • 發佈自己的類的實現爲單獨 源文件 - 例如,你可以組一個大 類的方法分爲幾類和將每個類別放在不同的 文件中。
  • 聲明私有方法。

您可以通過下一個類別名稱的接口文件 宣佈他們以相同的名稱定義它們在實現文件 方法添加到一個類。類別名稱表示這些方法是 對其他地方聲明的類的擴展,而不是新類。

所以根據這個描述,你可以在小小塊(文件)作爲category分發您UIViewController代碼,並從你的類調用它。

一個更降低您的單類代碼的方法是在小部分將您ViewController像你有TableViewHeader ViewFooter ViewNavigation View這樣你就可以創建子類這一切查看和編寫相關代碼到相應的等級和主類ViewController類只包含數據傳遞和一般方法。

使用ContainerView是最好的做法,分發您的UI和代碼的小部分。

希望這會幫助你瞭解你需要什麼!

快樂編碼。

相關問題