0

.hファイルや.mファイルを変更せずにObjCクラスにメソッドを追加することは可能ですか?

JavaScriptでは、たとえば、どこからでもプロトタイプにメソッドを追加できます。たとえば、配列プロトタイプにメソッドを追加できます。

Array.prototype.stackOverflow = function(parameters);
4

2 に答える 2

3

カテゴリを使用できます。

Objective-Cプログラミング言語:カテゴリと拡張機能

于 2012-07-17T12:17:49.750 に答える
2

これには、Objective-Cカテゴリを使用できます。

このリンクを確認してください:http: //macdevelopertips.com/objective-c/objective-c-categories.html

これがそのリンクから取られた例です(私はこの部分を書いていなかったことに注意してください)


たとえば、以下では、NSStringクラスにメソッドを追加するカテゴリを定義しました。メソッドreverseStringは、文字列内の文字を反転する機能をすべてのNSStringオブジェクトに追加します。

@interface NSString (reverse)
-(NSString *) reverseString;
@end

@interface宣言と同様に、@implementationセクションは、カテゴリ名が定義に追加されるという点でのみ変更されます。以下は、上記で定義されたインターフェースの実装です。どちらの場合も、割り当てたカテゴリ名である(逆)を追加したことに注意してください。

@implementation NSString (reverse)

-(NSString *) reverseString
{
// SNIP: implementation of reverse string
return reversedStr;
}

@end
于 2012-07-17T12:20:13.097 に答える