2010-11-21 13 views
3

私はiPhoneを使い慣れておらず、アプリケーションの読み込み時に呼び出される一連のメソッドを学びたいと思っています。TRACEログオンiPhone

いくつかのグーグルの後で、私はこれが適切であるとわかりました: NSLog(@ "Begin%@ initWithNibName"、[[self class] description]); しかし、メソッド名を直接入力する代わりに挿入する方法はありますか?より良いTRACEログコマンドですか?

また、私はインターネット上でこれを見つけた:

#define METHOD_LOG (NSLog(@"%@ %s\n%@", \ 
    NSStringFromSelector(_cmd), __FILE__, self)) 

しかし、私はそれがないと、どのようにそれを使用するかわかりません。私は試しました: - (id)init { METHOD_LOG( "init"); ...... }

コンパイルしません。

私は(両方のために働く)現在のメソッドや関数をログに記録し、これを使用

答えて

5

NSLog(@"%s", __FUNCTION__); 

あなたが引用されたマクロを使用するには、あなただけのタイプ:

METHOD_LOG; 
+0

ありがとうございました。あなたのマクロは非常に便利です。私はいつもそれを使ってきました。 Btw、@ "%s"と@ "%@"の違いは何ですか?私はそれを検索しようとしましたが、Googleは@と%sを理解しません。 – jabawaba

+0

'%@'はObjective-Cオブジェクト(NSStringなど)を出力し、 '%s'はCスタイルのヌル終端文字列を出力します。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.htmlを参照してください。 –