2016-09-12 1 views

答えて

4

これはAppleが軽量ジェネリックを使用していることです。 Xcodeの7.3.1でフル@interface宣言は次のようになります。

@interface NSArray<__covariant ObjectType> : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration> 

ObjectTypeあなたは、コンパイラがそれらを参照する場所を知っているように渡す一般的な引数を表すために使用されるプレースホルダです。 ObjectTypeidであるため、これはCoreFoundationオブジェクトなどのObjective-C以外のポインタ型を参照できるため、NSObject *を使用する場合と異なります。

たとえば、特定のクラスのみの配列をモックするクラスを作成する場合は、@interface MYArray<MyClass *>のようなものを実行できます。

特に、文字列の配列をNSArray<NSString *>と宣言することもできます。

詳細については、Objective-C Genericsのthis articleを参照してください。

関連する問題