ここでの私の目的は非常に単純です。NSString
いくつかのテスト データに を設定してから、クラスを返す必要がありますNSString
。これが私のコードです:
NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);
ログによると、クラスはNSCFString
ではなくNSString
です。何が起きてる?
ここでの私の目的は非常に単純です。NSString
いくつかのテスト データに を設定してから、クラスを返す必要がありますNSString
。これが私のコードです:
NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);
ログによると、クラスはNSCFString
ではなくNSString
です。何が起きてる?
NSString は実際には、さまざまなタイプの文字列オブジェクトのコンテナ クラスです。通常、NSString コンストラクターは、実際には NSCFString 型のオブジェクトを返します。これは、Core Foundation CFString 構造体の薄いラッパーです。
NSString はクラス clusterであり、NSNumber や NSArray などの他の Foundation タイプと同様です。
クラス クラスタは、Foundation フレームワークが広範囲に使用する設計パターンです。クラス クラスタは、公開された抽象スーパークラスの下に、多数の非公開の具体的なサブクラスをグループ化します。このようにクラスをグループ化することで、オブジェクト指向フレームワークの機能の豊富さを損なうことなく、一般に公開されているアーキテクチャを簡素化できます。クラス クラスタは、「Cocoa デザイン パターン」で説明した Abstract Factory デザイン パターンに基づいています。</p>