在Swift中使用轻量级泛型实现Objective-C方法
我必须在Objective-C库的数据源协议中实现此方法在Swift中使用轻量级泛型实现Objective-C方法,objective-c,swift,generics,swift3,Objective C,Swift,Generics,Swift3,我必须在Objective-C库的数据源协议中实现此方法 (nullable id<SomeClass>)someMethod; (可空id)someMethod; 我试图用Swift在我的课堂上实现它,特别是AppDelegate,我相信它与签名保持一致 extension AppDelegate: LIBDataSource { @objc func someMethod<T: SomeClass>() -> T? { return
(nullable id<SomeClass>)someMethod;
(可空id)someMethod;
我试图用Swift在我的课堂上实现它,特别是AppDelegate,我相信它与签名保持一致
extension AppDelegate: LIBDataSource {
@objc func someMethod<T: SomeClass>() -> T? {
return nil // temporary
}
}
扩展AppDelegate:LIBDataSource{
@objc func someMethod()->T{
返回零//临时
}
}
问题是
- 事实上,我有一个警告和一个错误。错误表示无法将
方法标记为@objc,因为它具有泛型参数(下面还显示了警告)
- 如果我删除
,警告会说@objc
非@objc方法“someMethod()”无法满足@objc协议LIBDataSource的可选要求
id<SomeClass>
语法
id<SomeClass>
Objective-C对泛型一无所知——这是不可能的。Objective-C对泛型一无所知——这是不可能的。