Objective-C中的<objecttype>

时间:2016-09-12 18:59:40

标签: objective-c generics nsarray

在NSArray.h中,我看到了这样的界面

@interface NSArray<ObjectType>

<ObjectType>有什么意义?

1 个答案:

答案 0 :(得分:7)

这就是Apple使用轻量级泛型。 Xcode 7.3.1中的完整http.antMatcher("/widget") .headers() .frameOptions() .disable() 声明如下所示:

@interface

@interface NSArray<__covariant ObjectType> : NSObject <NSCopying, NSMutableCopying, NSSecureCoding, NSFastEnumeration> 是一个占位符,用于表示您传入的泛型参数,以便编译器知道引用它们的位置。这与使用ObjectType不同,因为NSObject *ObjectType类似,它可以引用非Objective-C指针类型,例如CoreFoundation对象。

例如,如果我想创建一个只为特定类模拟数组的类,我可以执行类似id的操作。

您还可以将字符串数组声明为@interface MYArray<MyClass *>

有关详情,请参阅Objective-C Generics上的this article