Swift:不能使用NSImage .imageNamed

Obj*_*ift 10 swift osx-yosemite

我看到imageNamed从可用选项中被弃用(或删除)当我执行以下操作时:

       var statusImage:NSImage? = nil

       self.statusImage = NSImage .ImageNamed....
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我已经尝试过苹果公司和其他公司提供的Swift文档.这看起来非常简单但无法找到imageNamed的解决方案.我错过了什么吗?

ric*_*ter 25

init(named: String!)改用:称之为NSImage(named: "foo").

编译器自动重新映射被称为便捷构造函数的ObjC类方法,以用作Swift初始化器.如果类方法遵循便利构造函数(例如+[SomeThing thingWithFoo: bar:])的命名约定,则Swift将其重新映射到初始化器(例如,调用SomeThing(foo: aFoo, bar: aBar)).这也适用于Apple认为像方便构造函数一样工作的一些方法(如同的情况imageNamed:).

在大多数情况下,如果您完成对方便构造函数的类方法样式调用的输入,编译器将给出一个错误,告诉您如何重新映射它:

error: 'imageNamed' is unavailable: use object construction 'NSImage(named:)'
Run Code Online (Sandbox Code Playgroud)

更一般地说,您可以通过NSImage在编辑器中单击该符号(例如)来查看Xcode中API符号的自动生成模块"标题" ,或者查看Xcode的文档查看器或该API的在线参考文档,以查找使用它的Swift语法.