解いてみた/ザッカーバーグの面接試験2:アクティビティ・インディケーター
ザッカーバーグの面接試験2:アクティビティ・インディケーター
http://satoshi.blogs.com/life/2012/08/zack2.html
こんな感じかな?
#import "NetworkActivityManager.h" @implementation NetworkActivityManager + (id) sharedInstance { static NetworkActivityManager* manager; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ manager = [[NetworkActivityManager alloc] init]; }); return manager; } - (id)retain { [super retain]; if ([self retainCount] > 1) { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; } return self; } - (oneway void)release { [super release]; if ([self retainCount] <= 1) { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; } }
また、このケースで、シングルトンへのstrong referenceを使う利点と欠点を述べてください。
・利点:Reference countがインジケータのON/OFFスイッチの代わりにつかえてシンプルに書ける
・欠点:うーん、とくに思いつかない。関係ないところでは、上のコードはARC対象外になっちゃうので微妙ってくらいかなぁ。。