为什么这个方法
<img>
https://github.com/google/j2objc/blob/master/jre_emul/Classes/IOSPrimitiveArray.h#L252
对Swift3不可见?
但另一个是可见的。 例如:
>
答案 0 :(得分:2)
ObjC中的工厂方法 - 即返回instancetype
(或类的实际类型)并以类的公用名开头的类方法 - 作为初始化器导入Swift。
因此,名称中包含+(instancetype)arrayWithSomething:
的类的方法Array
会导入为init(something:)
。在您的情况下,+arrayWithNSData:
将导入init(nsData:)
。 (您可能会认为它会删除“NS”,因为它还会将参数类型从NSData
转换为其等效的Foundation.Data
的Swift值类型...但它不会。)< / p>
要查找此效果和其他导入器效果,您可以通过查看源的“生成的界面”视图在Xcode中查看结果。检查跳转栏左侧的相关项目按钮或助理编辑器。
有关详细信息,请参阅Apple的使用Swift with Cocoa和Objective-C 文档中的Initialization。