10

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

       var statusImage:NSImage? = nil

       self.statusImage = NSImage .ImageNamed....

在此处输入图像描述

我已经尝试过 Apple 提供的 Swift 文档和其他放置的文档。这似乎很琐碎,但找不到 imageNamed 的解决方案。我错过了什么吗?

4

1 回答 1

25

改为使用init(named: String!):将其称为NSImage(named: "foo").

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

在大多数情况下,如果你完成了对便利构造函数的类方法风格调用,编译器会给你一个错误,告诉你它是如何被重新映射的:

error: 'imageNamed' is unavailable: use object construction 'NSImage(named:)'

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

于 2014-06-18T21:59:59.027 回答