Swift3 某些Objective-C方法在Swift 3中不可见
为什么采用这种方法Swift3 某些Objective-C方法在Swift 3中不可见,swift3,j2objc,Swift3,J2objc,为什么采用这种方法 +(instancetype)数组,其中包含NSData:(NSData*)数据 在j2obj项目中 Swift3看不见 但另一个是可见的。 例如: +(instancetype)newArrayWithBytes:(const jbyte*)buf count:(nsInteger)countObjC中的工厂方法-即返回instancetype(或类的实际类型)并以类的通用名称开头的类方法-作为初始值设定项导入Swift 因此,名称中包含数组的类上的+(instancet
+(instancetype)数组,其中包含NSData:(NSData*)数据代码>
在j2obj项目中
Swift3看不见
但另一个是可见的。
例如:
+(instancetype)newArrayWithBytes:(const jbyte*)buf count:(nsInteger)count代码>ObjC中的工厂方法-即返回instancetype
(或类的实际类型)并以类的通用名称开头的类方法-作为初始值设定项导入Swift
因此,名称中包含数组的类上的+(instancetype)arrayWithSomething:
方法作为init(something:)
导入。在您的情况下,+arrayWithNSData:
将作为init(nsData:)
导入。(您可能认为它会删除“NS”,因为它还会将参数类型从NSData
转换为其等效的Swift值类型Foundation.Data
…但它不会。)
要查找此导入器效果和其他导入器效果,您可以通过查看源代码的“生成接口”视图,在Xcode中亲自查看结果。检查跳转栏左侧的“相关项目”按钮或“助理编辑器”
有关更多详细信息,请阅读Apple的使用Swift与Cocoa和Objective-C文档中的相关内容。ObjC中的工厂方法-即返回instancetype(或类的实际类型)并以类的通用名称开头的类方法-作为初始值设定项导入Swift
因此,名称中包含数组的类上的+(instancetype)arrayWithSomething:
方法作为init(something:)
导入。在您的情况下,+arrayWithNSData:
将作为init(nsData:)
导入。(您可能认为它会删除“NS”,因为它还会将参数类型从NSData
转换为其等效的Swift值类型Foundation.Data
…但它不会。)
要查找此导入器效果和其他导入器效果,您可以通过查看源代码的“生成接口”视图,在Xcode中亲自查看结果。检查跳转栏左侧的“相关项目”按钮或“助理编辑器”
有关更多详细信息,请阅读苹果的《使用Swift与Cocoa和Objective-C文档》。你确定它不可见吗?正常的导入程序规则会将其转换为初始值设定项-在Xcode的“生成的接口”视图中查找类似于init(nsData:)
的内容。@rickster,谢谢。我的错,不用担心。。。将评论转换为答案,以便对其他人更有帮助。您确定它是不可见的吗?正常的导入程序规则会将其转换为初始值设定项-在Xcode的“生成的接口”视图中查找类似于init(nsData:)
的内容。@rickster,谢谢。我的错,不用担心。。。将评论转换为答案,以便对其他人更有帮助。