我正在尝试使用来自 swift 文件的定义为 Objective C 方法的方法
objective-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`
最佳答案
在 Swift 3 中,ObjC 泛型被导入为 Swift 泛型。而且你总是需要在 Swift 泛型中指定类型参数。 (而且 Swift 3 还没有完善到可以生成适当的诊断...)
let myObject = MyObject<NSString>("MyString",data:["1","2","3"])
成功了。
关于objective-c - 字符串!不符合协议(protocol) 'ExpressibleByStringLiteral',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39904343/