2

ManageAddressBook.mというファイルがあります。このファイルには2つの@implementationが含まれています

2番目はどういう意味ですか?

@implementation ManageAddressBook

@end

@implementation NSString (Additions)

@end
4

2 に答える 2

8

最初の実装は単なる新しいクラスです。2番目の実装は、基本的に、Categoriesと呼ばれる既存のクラスへの拡張メソッドです。詳細については、「カテゴリと拡張機能」の記事を参照してください。

リンクの上部に要約されているように:

カテゴリを使用すると、ソースがないクラスであっても、既存のクラスにメソッドを追加できます。カテゴリは、サブクラス化せずに既存のクラスの機能を拡張できる強力な機能です。カテゴリを使用して、独自のクラスの実装を複数のファイルに分散することもできます。クラス拡張は似ていますが、プライマリクラスの@interfaceブロック内以外の場所にあるクラスに対して追加の必須APIを宣言できます。

于 2012-05-22T17:27:09.370 に答える
5

2つ目は、にObjective-Cカテゴリを実装しNSStringます。つまり、で動作するが、クラスNSStringの作成者によって提供されないメソッドです。NSString

カテゴリを追加すると、C#の拡張メソッドにいくらか似た方法でクラスの機能を拡張できます。オブジェクトはカテゴリで定義されたメッセージに応答し始めるため、柔軟でモジュール式の方法で機能を記述できます。

于 2012-05-22T17:26:58.510 に答える