私のリストビューコントローラーのいくつかは同じように動作することに気づきました。次に、それらをListVCと呼ばれる一般的なコントローラーに抽象化したいと思います。計画では、必要に応じてListVCのインスタンスを作成し、そのインスタンスに必要なすべての特定のものをそのインスタンスに渡します。
たとえば、顧客のリストが必要な場合は、次のようにします。
ListVC *customersVC = [[ListVC alloc] init];
customersVC.tableArray = self.customersList
ListVCでは、特定のオブジェクトのクラスタイプを知る必要がある場合があります。私の例では、配列内のオブジェクトself.customersList
はクラスからのものCustomerClass
です。文字列をクラス名に変換できることは知っていますが、オブジェクトの型を返す必要があるListVC内のメソッドがある場合は役に立ちません。たとえば、ListVCでは、この古い非抽象化メソッドは次のとおりです。
- (CustomerClass *)customerAfterFilter
次のようになります。
- (self.objectClass *)objectAfterFilter
そして、そのようにインスタンス化された後、objectClassを設定しました。
ListVC *customersVC = [[ListVC alloc] init];
customersVC.tableArray = self.customersList
customersVC.objectClass = [CustomerClass class];
どうすればこのようなことができますか?または、私のアプローチが間違っている場合は、正しいアプローチを提案してください。私はプログラミングの初心者です。