1

Apple が iOS 初心者向けに提供している 3 つのチュートリアルを順を追って説明します。最初の 2 つは、私が収集したものから、Objective-C の最新の拡張機能と推奨されるコーディング習慣に適合するガイドラインに非常に厳密に従っているように見えましたが、3 番目のガイドラインはそうではないようです。

リンクが機能するかどうかわからない: https://developer.apple.com/library/ios/documentation/General/Conceptual/iCloud101

  1. 宣言されたすべてのプロパティに対して @synthesize を呼び出すように明示的に指示します。バッキング変数の名前をカスタマイズする気にならない限り、これは不要ではないでしょうか?

  2. メソッドの前方宣言を行うように指示します。これはコンパイラによってまだ必要ですか? 前方宣言が不要になるのはいつですか?

  3. プロパティを使用する代わりに、直接アクセスされるインスタンス変数を頻繁に使用します。プロパティは、データ ストレージの推奨される方法ではありませんか? プロパティの使用を避けることが望ましいのはどのような場合ですか? おそらく、プライベート変数を作成する方法としてこれを行っていたと思います。このチュートリアルでは匿名のカテゴリは使用されていないため、チュートリアルが作成された後に使用可能になった可能性があります。

もっとあると思います。最近の Objective-C の悪い習慣を避けるために、ここでツール ベルトのいくつかの潜在的なテクニックを見逃していないことを確認したいだけです。最後の細かい活字は、2013 年 4 月に更新されたことを示していますが、コード スタイルをすべて更新することを気にしなかったのかもしれません。

4

2 に答える 2

2
  1. @synthesizeもう手動でプロパティを設定する必要はありません
  2. 実装ファイルでの前方宣言は不要になりました。
  3. ivar が好きな人もいれば、プロパティが好きな人もいますが、一貫して使用するようにしてください。
于 2013-09-05T03:26:46.633 に答える
2

おそらく、コード スタイルを更新していないだけでしょう。また、Apple のサンプル コードは、多くの場合、そのスタイルが非常に多様です。具体的な質問について:

  1. これは現在では一般的に不要ですが、たとえば、クラスがプロトコルで宣言されたプロパティに準拠している場合などです。

  2. 同じファイル内で、実装されているが他の場所で宣言されていないメソッドが表示されます。一般に、ヘッダーでのメソッドの宣言は、メソッドをクラスの外部から呼び出す必要がある場合にのみ必要です。

  3. インスタンス変数の使用は、好みの問題になると思います。および 初期化子ではdealloc、プロパティの実装で副作用が発生した場合に備えて、ivar を直接使用することが推奨されることがよくあります。

于 2013-09-05T03:26:59.430 に答える