ASとか

開発系の記事が多めです。タイトルのASはActionScriptの略です。

クラスエクステンション機能

はじめに

このエントリは、メモリ管理でミスしないために - ASとかの説明です。同時に開きつつ見て下さい。

クラスエクステンションとは?

ヘッダファイルはシンプルに保つべきだと思います。大量のプロパティ宣言、大量のメソッド宣言が記述してあるクラスは解析する前に帰宅したくなります。原因として、外部クラスが知らなくてもいいような、プライベートなプロパティ、メソッドまでがヘッダファイルに記述してあることがよくあります。これを解決するのが以下です。

// MemberListViewController.m
@interface MemberListViewController ()

@property (nonatomic, retain) UIButton *updateButton;
@property (nonatomic, retain) DataImporter *importer;
@property (nonatomic, retain) NSArray *memberList;

// メンバーリストを取得し直し、画面を更新する
- (IBAction)updateMemberList;

// メンバーリストを元に画面更新
- (void)updateView;

@end

メインファイル側へinterfaceを無名カテゴリで宣言し、プライベートなプロパティやメソッドを記述することで、ヘッダファイルから記述を移す事ができます。これがクラスエクステンションです。

まとめ

二回目になりますが、汚いヘッダファイルは精神への攻撃が非常に大きいです。後からソースを見る人(自分含む)のためにも、クラスエクステンションを使い、ヘッダファイルを綺麗に保ちましょう。