[解決済み] Category ExtensionとClass Extensionの違いとは?
2023-05-13 22:23:48
質問
カテゴリとクラス拡張の違いは何ですか。私は両方が既存のクラスにカスタムメソッドを追加するために使用されると信じています。どなたか、このことに光を当てていただけないでしょうか。コードで説明すると、本当に感謝されます。
どのように解決するのですか?
カテゴリは、既存のクラスにメソッドを追加する方法です。 それらは通常、"NSView+CustomAdditions.h" のような "Class+CategoryName.h" というファイルに存在します (そしてもちろん .m もあります)。
クラス拡張は、2 つの主な相違点を除いて、カテゴリです。
-
カテゴリは名前を持ちません。 このように宣言されています。
インターフェース SomeClass ()
終了- (void) anAdditionalMethod;
-
拡張機能の実装 が必要です。 は、ファイルのメインの @implementation ブロックになければなりません。
.m ファイルの先頭でクラスの拡張子がクラスのメソッドを宣言しているのを見るのはよくあることで、それはクラスのメインの @implementation セクションの下で実装されます。 これは、quot;pseudo-private" メソッドを宣言する方法です (外部で公開されていないだけで、実際にはプライベートではないという点でpseudo-privateです)。
関連
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] クラスメソッドとインスタンスメソッドの違いは何ですか?
-
[解決済み] インポート vs #インポート - iOS 7
-
[解決済み] StoryboardsのModalセグとPushセグの違いは何ですか?
-
[解決済み] iPhone SDK: loadViewとviewDidLoadの違いは何ですか?
-
[解決済み] Objective-Cのプロテクトメソッド
-
[解決済み] iOS 6 の補完ブロックの dispatch_get_current_queue() の代わりとなるものは?
-
[解決済み] NSStringをstd::stringに変換するにはどうしたらいいですか?
-
[解決済み] hitTest:withEventを使用して、スーパービューのフレーム外にあるサブビューのタッチをキャプチャする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 角括弧 < > と引用符 " " を使って #import する。
-
[解決済み] Objective-CのクラスでSwiftのプロトコルをインポートする
-
[解決済み] インスタンスメッセージの受信型'CALayer'は前方宣言である」とはどういう意味か?
-
[解決済み] IOSのUIViewからアプリケーションのドキュメントフォルダに画像を保存する
-
[解決済み] AppDelegateからストーリーボード上の異なる場所で条件付きで開始する。
-
[解決済み] Swiftの変数はアトミックか?
-
[解決済み] libxml/tree.h にそのようなファイルやディレクトリはありません。
-
[解決済み] Category is implementing method which will be implemented by its primary class" の警告を抑制する。
-
[解決済み] ViewController の respondsToSelector: 割り当て解除されたインスタンスにメッセージが送信される (CRASH)
-
[解決済み] Swiftの拡張機能例