在NSArray.h中,我看到了这样的界面
@interface NSArray<ObjectType>
<ObjectType>
有什么意义?
答案 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。