1
我正在将我现有的swift源代码库转换为swift 3,并且在Swift类中有一个方法,它早些时候返回NSStringEncoding。在swift 3中,编译器要求我将NSStringEncoding转换为String.Encoding。但是这种方法现在没有在Objective-c生成的接口中反映出来,现在我无法在我的objective-c类中调用此方法。String.Encoding没有被转换为NSStringEncoding在SWIFT 3到目标C转换
这是一个示例代码段:
@objc
open class MyClass: NSObject{
open var textEncoding: String.Encoding { get { return self.getEncoding() } }
fileprivate func getEncoding() -> String.Encoding{
// some conversion code
return encoding
}
}
在Objective-C类,
-(void)demoFunc:(MyClass * _Nonnull)response{
(i) NSStringEncoding responseEncoding = response.textEncoding;
}
编译器引发此错误对于上述线,
属性未在'MyClass'类型的对象上找到'textEncoding' *'
如何解决这个问题,因为我不能在swift文件和Objective C中声明/使用NSStringEncoding我不能使用String.Encoding?