0

NSAssertなどを使用して、アプリでのデバッグを改善したいと考えています。NSAssertは、アサーションが失敗した場合に出力する文字列を必要としています。素晴らしいですが、その文字列に大量の情報を入力しない限り役に立ちません。これは、あちこちで行われると大きな混乱になる可能性があります。

そのため、クラス名、メソッド名などの有用な情報が満載の文字列を使用してNSAssert呼び出しを実行するマクロを作成したいと思います。しかし、もっと重要なのは、カスタムコメントも提供したいということです。次のようなマクロを想像してみてください。

USEFUL_ASSERT(foo!= nil、@ "それは本当に良くありませんでした")

多くの理由で、ここでは関数やメソッドの呼び出しを使用できません。コンテキストが失われ、どのクラスがその問題を引き起こしたのか、どのメソッドがその問題を引き起こしたのかがわからなかったためです。これはそのメソッド自体の内部でのみ実行できるため、[self class]や_cmdなど、この情報の多くのパラメーターを渡す必要がありますが、これらすべてのものをあちこちに散らばらせたくありません。挿入するコードが短いほど、保守が容易になります。

何か案が?

4

2 に答える 2

2

マクロドキュメントを見てください。

于 2009-09-03T20:38:40.890 に答える
1
#define USEFUL_ASSERT(condition, comment) /*whatever*/
于 2009-09-03T20:37:53.013 に答える