[英]How do I share common methods between view controllers in Objective-C?
在我的應用程序中有許多視圖控制器,它們有自己的用途。 但是,在它們下面確實需要共同的維護工作,這些工作可以使用相同的方法代碼,而不是每個都有自己的代碼副本,字面上粘貼。
有沒有辦法分享這些常用方法的代碼? 我看到兩種可能性:
1)在方法的特殊維護對象中,在內存中真正共享的一個代碼副本
要么
2)在代碼塊中寫入一次,但每個視圖根據需要分配多次。
以下哪一條是正確的路徑或正確的路徑,以及如何以最簡單的方式實施?
善良,在房間里的新編碼器。
謝謝。
-Ric
注意:這是一個反映當時Apple實踐的舊問題/答案,並回答了一個新的編碼人員正在尋找他們能夠理解的簡單解決方案(根據問題的要求)。 使用合成 ,有更好,更可測試的方法來實現這一目標。
實現所需目標的最佳方法是為視圖控制器創建公共父類。 因此,不是直接從UIViewController
繼承,而是每個自定義類都將繼承自SomeFeatureViewController
( SomeFeature
描述所提供的常用功能),此類繼承自UIViewController
。 現在,每個實際的視圖控制器都將繼承自SomeFeatureViewController
並且任何常用方法(也可以是這些方法使用的任何常見實例變量)都可以放在此父類中。
@interface SomeFeatureViewController : UIViewController
{
int common_iVars;
}
- (void)commonMethods;
@end
@interface ActualViewController : SomeFeatureViewController
{
int specific_iVars;
}
- (void)specificMethods;
@end
好吧,我最終做的是創建一個Singleton對象並將所有常用方法放在那里。 這意味着我的所有View控制器都可以使用Singleton的常用方法。 如果項目是由程序員團隊開發的話,這可能有點過於開放,但正如我所知,所有控制器在處理方面都有類似的要求。 所以Singleton方法似乎有效。
它也適合項目,因為在問題發生時所有的View控制器都已創建並使它們成為父類的子類似乎是一種改進,盡管我同意如果是初始設計的一部分,它可能是一個更好的方法。 我真的感謝有時間回答的3。
我看到它的方式你應該用所有常用方法做一個類,然后繼承它。 假設你有MyCommonViewController:UIViewController然后為每個不同的視圖控制器做MySpecificVIewController:MyCommonViewController
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.