3

開発者のドキュメントによると、クラス拡張は@interface実装ファイルで an を宣言することによって実装され、インスタンス変数をプライベートに再宣言するためにも使用できます。ただし、新しいメソッドやインスタンス変数を宣言していない以下のコードをよく見かけます。その目的は何ですか?

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController 
...  
4

1 に答える 1

4

そのようなコードの背後にある目的はありません。これが存在する唯一の理由は、Xcode で .m ファイルを作成するための標準テンプレートの一部であるためです。

とはいえ、このようなクラス拡張はまったく無害であるため、プライベート メソッドや変数を追加する必要がある場合に備えてそれらを保持しても、アプリのパフォーマンスが損なわれることはありません。最終的には、個人の好みの問題です。たとえば、このような使用されていないテンプレート生成のアーティファクトをコードから削除しますが、それらを保持することを支持する議論も受け入れることができます。

これらのクラス拡張をデフォルトで生成したくない場合は、新しい Objective-C クラスの Xcode テンプレートを複製して変更します (方法を説明する Q&A はこちらです)。

于 2015-01-18T19:31:32.370 に答える