iRSSの日記

はてなダイアリーiRSSの日記の続き

Debugger@iPad and iPhone App Development (Fall 2011)で気づいたTips

iTunes Uで人気のStanford大学の授業:iPad and iPhone App Development (Fall 2011)コース、Debuggerのビデオを見てTipsをメモ。
便利機能をすっ飛ばして、開発してました。
いま、みといてよかった。

Exceptions Breakpointを設定しておく

Throwが投げられたときは、該当行で止まるので、便利


Exceptions Breakpointが無い状態だと

mainで止まるのだが、これだと、どこが問題がわからない。

Exceptions Breakpointをつけると

落ちた場所で止まる。

特定の値が来たときだけ、BreakPointを有効にしたい。

Edit Breakpointで、発動する条件を指定できる

変数のresultが0のときのみ、発動させるなら、以下のように指定


自作のクラスでdescriptionメソッドをオーバーライドする

@interface CalculatorBrain() 
@property (nonatomic,strong) NSMutableArray *operationStack;
@end

のような、プロパティがあるときに、デバッガでpoで以下のように確認できる

(gdb) print self
$1 = (CalculatorBrain * const) 0x6a4ee00
(gdb) print [self operationStack]
$2 = (NSMutableArray *) 0x6a49010
(gdb) po [self operationStack]
<__NSArrayM 0x6a49010>(
8,
6,
0
)


これでもよいが、descriptionメソッドを

- (NSString *)description{
    return [NSString stringWithFormat:@"%@",self.operationStack];
}

のように、作っておくと

NSLogや デバッガコンソールで見やすくなる。

(gdb) po self
stack = (
    8,
    6,
    0
)

40分くらいの短い時間で、内容は基本的なことなんだけど、知らないかもっていう内容なので、ぜひ、抑えときたいです。