1. ホーム
  2. objective-c

[解決済み] Objective Cでプロトコルを実装できるカテゴリはありますか?

2023-03-11 17:17:29

質問

NSDateのカテゴリを作成しているのですが、以前作成したプロトコルを実装できると便利なのですが。これは可能ですか?このための正しいシンタックスは何ですか?

どのように解決するのですか?

はい、それは可能です。構文は次のとおりです。

@interface NSDate (CategoryName) <ProtocolName>
@end

@implementation NSDate (CategoryName)
@end

ここで アップルのドキュメント をご覧ください。

クラス拡張を使ってこれを行うことも可能です。私は、これが私的にデリゲートプロトコルに準拠することを非常に好みます。そうすることで、パブリックインターフェースから、あるクラスのあるデリゲートであるという実装の詳細を隠し、ヘッダーから依存関係を取り除きます。