タグ

Macroに関するBowz13のブックマーク (5)

  • Objective-Cのボトルネック検出 - 定食屋おろポン

    パフォーマンスの改善には、ボトルネックの検出が欠かせません。 どの処理に時間がかかっているのか判別するため、処理の経過時間を記録します。 stackoverflow*1では以下のような方法が提案されています。 NSDate *start = [NSDate date]; // do stuff... NSTimeInterval timeInterval = [start timeIntervalSinceNow]; これで経過時間を取得できます。 が、しかし。「1回だけ経過時間を取得する」なんてことは、あまりありません。 たとえば、「あるメソッド内で行われている処理の中で、一番重い処理を見つけたい」といったときには、メソッドの処理を5個くらいに分割してそれぞれの経過時間を取得し、大雑把なアタリをつける方が効率的です。 つまり、経過時間を取得する処理が複数回おこなわれます。 しかし、経過時

    Objective-Cのボトルネック検出 - 定食屋おろポン
  • Xcodeでデバッグマクロ | tkd55

    iOS開発時にデバッグログを NSLog(@"%s", __func__); とか NSLog(@"%s", __PRETTY_FUNCTION__); って書いていたけど、フォーマット指定子を忘れたり、リリース前に消したりするのが面倒だったので、 関数名(引数も)/行数/文字列を出力するデバッグマクロを書いてみたよ。 【使い方】 ①「アプリケーション名_Prefix.pch」に以下を追加(ヘッダに書くとimportするのが面倒なので.pchに書く) // デバッグログマクロ #ifdef DEBUG #define dbgLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define dbgLog(...) #endif ②ログ出力したい箇所に

    Xcodeでデバッグマクロ | tkd55
  • プログラミング言語 C の新機能(可変長マクロ)

    2. C プリプロセッサ 章では、プリプロセッサに新たに加わったいくつかの機能と、プリプロセッサに対する変更点について説明します。 2.1 新しいコメント表記方法 今までのプログラミング言語 C でのコメントの表記法は、/* */ という表記を用いていました。次の例では、青色の部分が示している部分、つまり /* で始まり */ で終わる部分がコメントとして扱われました。 /* * 引数一覧表示プログラム (c)1999 seclan * ver1.00 1999/03/15 最初のバージョン */ #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i = 0; i < argc; i++){ printf("%d: %s\n", i,    /* 添え字。今何番目を 表示しているか */ argv[i] /*

    Bowz13
    Bowz13 2013/08/31
  • ログ出力用マクロ - その後のその後

    下記のような有名なログ出力マクロがありますが、 #ifdef DEBUG # define LOG_CURRENT_METHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG_CURRENT_METHOD ; #endif これプラスアルファでちょっと便利なマクロをご紹介します。 下記マクロを定義して、 #ifdef DEBUG # define LOG_CURRENT_LINE(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define LOG_CURRENT_LINE(...) #endif たとえば

    ログ出力用マクロ - その後のその後
  • Objective-Cでよく使う便利マクロを10個集めてみた - Qiita

    1. AppDelegateの参照 AppDelegate≒グローバルとして使う場合にとても便利です。 ゆとり向けです。あまり使う頻度が高いと設計ができてないということなので要注意かも。 #define APP_DELEGATE ((AppDelegate*)[[UIApplication sharedApplication] delegate]) 2. テストの時に便利なBundleの参照 ユニットテストを書いてみたけどmainBundleがうまく取れなくってこける、という時のために。bundleForClass:[self class]を使うことで対応するバンドルを取得するようにします。

    Objective-Cでよく使う便利マクロを10個集めてみた - Qiita
  • 1