1

呼び出し元のメソッドの名前を吐き出す、再利用可能なロギング メソッドまたは関数が必要です。例:

    - (void)exampleMethod {
        CustomLog(); //Outputs "exampleMethod"
    }
4

2 に答える 2

2

関数は呼び出し環境を知りません (少なくとも有用な方法ではありません)。唯一の方法は、代わりにマクロを使用することです。マクロ内では、レシーバーと現在のセレクターを保持するselfと引数、および人間が判読できるメソッド名を C 文字列として含むマクロにアクセスできます。_cmd__PRETTY_FUNCTION__

于 2010-04-21T02:14:00.463 に答える
0

メソッド名と行番号を出力し、条件付きでNSLogを無効にする方法を参照してください。この回答のインスピレーションとその他の便利なNSLogのヒント。これが私が望んでいたことです:

//place in PCH file
#define ILog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

//use in any file in your project
ILog(@"test");// outputs -[AppDelegate applicationDidFinishLaunching:] [Line 38] test
于 2010-04-21T02:19:17.577 に答える