3

タグとして使用する数字によって、パフォーマンスに利点はありますか?

タグでラベル付けしているオブジェクトのセットが 4 つあります。番号をスキップしない理由はありますか? つまり、最初のセットを 0 から 99 まで、2 番目を 1000 から 1099 まで、3 番目を 2000 から 2099 まで、4 番目を 100,000 から 100,099 まで実行できますか?

私のコードでは、実際にはこれほど多くのオブジェクトを使用していないことに注意してください。したがって、これほど多くのオブジェクトを持つことによるパフォーマンスの問題について質問しているわけではありません。タグをスキップするのが悪いかどうか知りたいだけです。コードと考えを整理するのに役立ちます。タグがどのように保存されているか知っている人はいますか?

4

2 に答える 2

3

タグは NSInteger プロパティとして保存されます。私が理解しているように-viewWithTag:、ビュー階層を検索し、各ビューで一致するタグをチェックし、最初の一致を返します。数字をスキップしてもパフォーマンスが低下することはありません。

于 2012-07-13T18:40:45.997 に答える
1

タグは整数として保存されます。4 バイトを使用して格納される iOS の整数。それらを別の整数値と比較すると、使用している値に関係なく、まったく同じ時間がかかります。

ただし、ビュー階層を格納するための内部最適化が行われている場合があります。一例として、Apple はタグをビューにマッピングするためにある種のツリー構造を使用することを選択した可能性があります。その部分は、Apple の開発者の内部の問題であるため、お答えできません。

2 つのオプションがあります。

  1. 自分自身を測定します (楽器を使用)。
  2. 影響は何があっても目に見えないに近いので心配しないでください。
于 2012-07-13T18:40:48.923 に答える