ビデオ: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2025
興味深いことに、Objective-Cでは、iOSアプリケーション内の既存の クラスに独自のメソッドを追加することができます。あなたが書いたことがないクラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。 例として、特定のアプリケーション(palindrome checkerなど)が処理している文字列をかなり元に戻す必要があることがあります。
<! --1 - >
追加の逆メソッドを使用して独自のNSStringのサブクラスを作成すると、プログラムが複雑すぎる可能性があります。むしろ、元のクラスに新しいビヘイビアを追加するほうがずっと便利かもしれません。あなたはNSString自体に逆のメソッドを追加することができればいいのではないでしょうか?元のインターフェイスまたは実装NSStringは、フレームワーククラスであり、ソースコードを持たないため、変更することはできません。ただし、新しいカテゴリを定義することでNSStringクラス(または他のクラス)を拡張することができます。 PostfixAllファイル。 NSStringクラスが次のようにreverseというメソッドで拡張されていることがわかります:
<! @interface NSString(ReversibleString) - (NSString *)reverse;} -d
ご覧のとおり、カテゴリを定義することは、クラスのインターフェースを定義することと非常によく似ています。実際、カテゴリのメソッドの実装を提供することは、メソッドが@implementationブロックに囲まれているという点で、クラスの実装を提供することと非常に似ています。下記のカテゴリの実装ブロック(その逆のコードを含む)が(PostfixAll.mファイル内に)表示されます:
<! (NSString *)reverse(NSString *); NSString(NSString *); // NSString(NSString *); int stringLength = selfです。長さ; for(int i = stringLength-1; i> = 0; i--){NSString * oneCharString = [自己substringWithRange:NSMakeRange(i、1)];最後に、カテゴリで定義されたメソッドの
use
は、他のメソッドの使用と変わらないことが分かります。これは、次のようになります(reversedString appendString:oneCharString; return returnedString;})。 PostfixAllのmain関数から抜粋した次のコードスニペット。 m:NSLog(@ "反転文字列を出力する%@
