UI Builderを使用してUIViewControllerで変数を宣言する場合は、特にNSObjectのキャスティングのコスト#defineを使用してiOSでキャストする場合
という変数を宣言するために、Interface BuilderとIBOutletですべてを行う傾向があります。@property(nonatomic,retain) IBOutlet MyView *myView;
その後、私はMYVIEW内の他のすべてのコンセントにアクセスすることができ、それはコンセントを使用して私のコードでInterface Builderのリコールの谷接続:
UILabel *label = myView.theLabel;
MYVIEWは、私ができる、非常に頻繁に私のメインビューであることを考慮すると、また:
UILabel *label = (MyView*)self.view.theLabel;
構文は非常に長いですが、これは、マクロで例えば、これはなる可能性があり、私は.hファイルに以下の変数を宣言し、(私の意見で)コードクリーナーを維持することができます:
#define MV (MyView*)self.view
UILabel *label = MV.theLabel;
私は読んで維持する方がはるかにいいと分かった。 重要なことは、iOS 5を使用してパフォーマンスの面でコストが常にかかることです。 UIKitがもう何かの上のレイヤーであると考えると、UIViewオブジェクトのキャスティングは多少異なるか、またはより高価になりますか? コンパイラは、特に新しいアークコンパイラで何らかの最適化を行いますか?
おかげ
えええええええと、私はいつも他の意見に興味があります。特に、プログラミング言語を初めて勉強した時には、このアプローチの他の欠点について説明できますか?たぶんあなたの答えに。 – Leonardo
@レオナルド:あなたのコードをもっと見ることなく、最高の状態で編集できます。 –
おかげで、私が調査しようとしている興味深い側面を指摘しました。 – Leonardo