.hファイルや.mファイルを変更せずにObjCクラスにメソッドを追加することは可能ですか?
JavaScriptでは、たとえば、どこからでもプロトタイプにメソッドを追加できます。たとえば、配列プロトタイプにメソッドを追加できます。
Array.prototype.stackOverflow = function(parameters);
.hファイルや.mファイルを変更せずにObjCクラスにメソッドを追加することは可能ですか?
JavaScriptでは、たとえば、どこからでもプロトタイプにメソッドを追加できます。たとえば、配列プロトタイプにメソッドを追加できます。
Array.prototype.stackOverflow = function(parameters);
カテゴリを使用できます。
これには、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