我正在尝试使用一个定义为Objective C方法的方法,来自swift文件
目标c中的方法定义为
-(instancetype) init:(NSString*)string data:(id)data;
方法名称无法重构。
我试图按如下方式调用它
let myObject = MyObject("MyString",data:["1","2","3"])
作为回报我收到编译错误:“String! does not conform to protocol 'ExpressibleByStringLiteral'
”
我该如何解决?
编辑:
MyObject定义如下
`@interface MyObject<__covariant Type> : NSObject @end
@implementation
@end`
答案 0 :(得分:1)
在Swift 3中,ObjC泛型作为Swift泛型导入。而且你总是需要在Swift泛型中指定type参数。 (而Swift 3还没有那么精致,无法生成适当的诊断......)
let myObject = MyObject<NSString>("MyString",data:["1","2","3"])
的工作。
答案 1 :(得分:0)
您的数据实际上是数据还是[String]?