ザッカーバーグの面接試験2:アクティビティ・インディケーター
2012.08.21
先日の「ザッカーバーグの面接試験:Objective-C のブロックを使いこなす」には数多くの答えをいただいたので、それに気を良くして第二問。これも iOS 用だが、先の問題と違い、この問題は初級者〜中級者向けだ。
[問題]
iOS ではステータスバー上のアクティビティ・インディケーターの ON/OFF は、[UIApplication sharedApplication] の networkActivityIndicatorVisible プロパティに YES/NO をセットすることにより行います。そのため、複数の非同期通信を同時に行うアプリケーションの場合、少なくとも一つの非同期通信が行われている時だけ YES にする仕組みを作る必要があります。
そこで、NetworkActivityManager というシングルトン・クラス(インスタンスを一個しか持たないクラス)を作り、非同期通信中はそのシングルトンへの strong reference を保持する、という規約でアクティビティ・インディケーターをコントロールすることにしました。
使い方は、非同期通信の開始時期に、
self.activity = [NetworkActivityManager sharedInstance]; // activity は strong reference
と strong reference を保持し、非同期通信の終了(もしくはキャンセル時)に
self.activity = nil;
とリリースします。
さてここで問題です。NetworkActivityManager クラスを可能なかぎりシンプルに実装してください。また、このケースで、シングルトンへのstrong referenceを使う利点と欠点を述べてください。
制限時間:15分
やってみました。
http://d.hatena.ne.jp/kenmaz/20120825/1345832595
Posted by: Kentaro Matsumae | 2012.08.24 at 11:24