Archive for the ‘Programming’ Category.

iOS Debugging Magic

新しい Technical Note iOS Debugging Magic (TN2239) が出ていた。

(gdb) po [[self view] recursiveDescription] が便利そう。

NSLog() でクラス名、メソッド名を表示

NSLog() でインスタンスのクラス名を表示する方法。

NSLog(@"%@", NSStringFromClass([self class]));

NSLog() でメソッド名を表示する方法。

NSLog(@"%s", _cmd);
NSLog(@"%@", NSStringFromSelector(_cmd));

NSLog() でメソッド名とそのメソッドが属するクラス名を同時に表示する方法。

NSLog(@"%s", __func__);
NSLog(@"%s", __FUNCTION__);

NSLog() でソースファイル名を表示する方法。

NSLog(@"%s", __FILE__);

NSLog() でソースファイル内の行番号を表示する方法。

NSLog(@"%d", __LINE__);

例)

- (void)viewDidLoad
{
	[super viewDidLoad];
 
	NSLog(@"%@", NSStringFromClass([self class]));
 
	NSLog(@"%s", _cmd);
	NSLog(@"%@", NSStringFromSelector(_cmd));
 
	NSLog(@"%s", __func__);
	NSLog(@"%s", __FUNCTION__);
 
	NSLog(@"%s", __FILE__);
 
	NSLog(@"%d", __LINE__);
}
 2009-03-23 14:54:23.000 Test[1361:20b] TestViewController
 2009-03-23 14:54:23.002 Test[1361:20b] viewDidLoad
 2009-03-23 14:54:23.002 Test[1361:20b] viewDidLoad
 2009-03-23 14:54:23.002 Test[1361:20b] -[TestViewController viewDidLoad]
 2009-03-23 14:54:23.003 Test[1361:20b] -[TestViewController viewDidLoad]
 2009-03-23 14:54:23.003 Test[1361:20b] /path/to/file/TestViewController.m
 2009-03-23 14:54:23.005 Test[1361:20b] 48