ビデオ: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2025
iOSアプリケーション開発では、Objective-Cでは独自のメソッドを 既存の クラスに追加することができますクラスにメソッドを追加すると、特定の状況でのみ新しい動作が使用されるような場合に便利です。
例として、特定のアプリケーション(たとえば、パリンドロームチェッカー)は、扱っている文字列をかなり元に戻す必要があります!あなたのプログラムは、逆のメソッドを使ってNSStringの独自のサブクラスを作成するのが非常に複雑になるかもしれません。
<! - 1 - >元のインターフェイスや実装NSStringはフレームワーククラスであり、ソースコードを持たないため変更できないことに注意してください。新しいカテゴリを定義することによってNSStringクラス(または他のクラス)。PostfixAll.mファイル次のように、NSStringクラスがreverseというメソッドで拡張されていることがわかります。
@interface NSString(ReversibleString) - (NSString *)reverse; -d
ご覧のとおり、カテゴリを定義することは、クラスのインターフェースを定義することと非常によく似ています。実際、カテゴリのメソッドの実装を提供することは、メソッドが@implementationブロックに囲まれているという点で、クラスの実装を提供することと非常に似ています。以下のカテゴリの実装ブロック(PostfixAll.m)を見ることができます:
<! (NSString *)逆順{NSMutableString * reversedString = [[NSMutableString alloc] init];(NSString) int stringLength = selfです。長さ; for(int i = stringLength-1; i> = 0; i--){NSString * oneCharString = [自己substringWithRange:NSMakeRange(i、1)];最後に、カテゴリで定義されたメソッドのuse
は、他のメソッドの使用と変わらないことがわかります。これは、次のように解釈されます。 PostfixAllのmain関数から抜粋した次のコードスニペット。 m: <! NSLog(@ "反転文字列を出力する%@ <"、[aStringObject reverse]); - > - >
