【发布时间】:2016-08-04 11:07:12
【问题描述】:
从 Xcode 7 开始,Objective-C 为类引入了泛型类型参数。有什么方法可以在 Objective C 协议中使用泛型?我还没有找到一种明显的方法来做到这一点,因为与@interface MyClass<ObjectType> 等效的协议已经被用于协议(例如@protocol MyProtocol<NSObject>)。
示例:我想像这样转换代码:
@protocol MYObjectContainer
- (id)objectAtIndex:(NSUInteger)index;
@end
这样编码:
@protocol MYObjectContainer
- (ObjectType)objectAtIndex:(NSUInteger)index;
@end
这对于常规类是可能的(例如,参见 NSArray)。
【问题讨论】:
-
你能澄清你想要做什么吗?用一个例子更新你的问题。
-
我猜你不能,因为泛型被添加到 Objective-C 中的类中以与 Swift 交互,而 Swift 中的协议没有泛型(它们有关联的类型)。
标签: objective-c generics