2017-09-03 7 views
0

サブクラス化したいプロジェクトには、多くの多くの多くの既存のUILabelsがあります。むしろ個別IBの私UILabelサブクラスにそれらを設定し、それらすべてを通過する日を過ごすよりも、プログラムすべてのUILabelsをプログラムでサブクラスに設定する

ここでチェック

それらを設定する:しようとした推測の How to programmatically set custom class?

カップル:UILabel_setClass(self.contentView, [MyLabel class]); - 暗黙の宣言エラー

と:

 Class lbl = [[MyLabel alloc] init]; 

     for (id view in [self.contentView subviews]) { 
      if ([view isKindOfClass:[UILabel class]]) { 

       //....sub it here? 

       } 
     } 

答えて

-1

まず、オブジェクトクラスを変更することは非常に悪い考えです。これはの臭いコードの1つです。将来的に新しい開発者がデフォルトのUILabelクラスを使用すると、奇妙なエラーが発生する可能性があります。ランタイム - は、客観的なCの偉大かつ最悪の特徴です。悪い手に隠れたバグを作り出すことができます。とても慎重に使用してください。そして、2度考えてください - あなたは本当にプロジェクトでそれを必要としますか?あなたのコードを明示的に書く、デザインパターンなどを使用してください。

なぜオブジェクトクラスを変更する必要があるのか​​不明です。外観を変更する必要がある場合は、UIAppearanceを使用してください。機能を拡張する必要がある場合は、Extensionsを使用してください。

+0

PDFとして印刷すると問題が発生するため、UIAppearanceは機能しません。実世界のシナリオで既存のプロジェクトに取り組んでいないときのデザインパターンなどは問題ありません – JSA986

関連する問題