Swift与Objective-C的融合与互操作性
1. 轻量级泛型
在编程中,当数组被声明为 NSArray<NSString*>* 时, ObjectType 占位符会被解析为 NSString* 。苹果将这种标记称为轻量级泛型。在Swift里,被标记为轻量级泛型的类,即便不是桥接集合类型,也会作为实际的泛型导入。例如,声明一个与 NSArray 平行的Objective - C类:
@interface Thing<ObjectType> : NSObject
- (void) giveMeAThing:(nonnull ObjectType)anObject;
@end
这个 Thing 类在Swift中会被声明为泛型:
class Thing<ObjectType> : NSObject where ObjectType : AnyObject {
Thing 类必须通过某种方式解析泛型来实例化,通常会显式解析:
let t = Thing<NSString>()
t.giveMeAThing("howdy") // 这里传入Int是不合法的
超级会员免费看
订阅专栏 解锁全文
1012

被折叠的 条评论
为什么被折叠?



