1

新規の質問はこちら。

なぜ私はこれを行うのですか:

    NSPredicate *pred = [NSPredicate predicateWithFormat:@"(lineNum = %d)", i];
    [request setPredicate:pred];

いつ私はこれを行うことができますか?

    [request setPredicate:[NSPredicate predicateWithFormat:@"(lineNum = %d)", i]];

私が見つけたすべての教科書のコード例は最初の方法を使用していますが、私が見る限り、2 番目の方法は基本的に同じことを行い、見栄えがよくなります。「pred」は一度しか呼び出されないのに、なぜオブジェクトとして作成するのですか?

4

2 に答える 2

5

これは主に教科書の形式に関係しています。書籍にはスクロール バーがないため、特定の数の文字をページに収めるのは困難です。それ以外は、2つは同一です。

実際にこれを行う理由の 1 つは、ブレーク ポイントを設定して、 をpred呼び出す前に調べることができるようにするためですsetPredicate:

于 2012-11-03T03:05:09.110 に答える
3

どちらがきれいに見えるかは好みの問題です。

両者の間に機能上の違いはありません。

より複雑なケースでは、意味のある変数名を付けることができるため、最初のパターンではより自明なコードを使用できます。

NSPredicate *correctLineNumber = 
   [NSPredicate predicateWithFormat:@"(lineNum = %d)", i];
[request setPredicate:correctLineNumber];
于 2012-11-03T03:05:26.247 に答える