当我执行以下操作时,我看到 imageNamed 已从可用选项中弃用(或删除):
var statusImage:NSImage? = nil
self.statusImage = NSImage .ImageNamed....
我已经尝试过 Apple 提供的 Swift 文档和其他放置的文档。这似乎很琐碎,但找不到 imageNamed 的解决方案。我错过了什么吗?
当我执行以下操作时,我看到 imageNamed 已从可用选项中弃用(或删除):
var statusImage:NSImage? = nil
self.statusImage = NSImage .ImageNamed....
我已经尝试过 Apple 提供的 Swift 文档和其他放置的文档。这似乎很琐碎,但找不到 imageNamed 的解决方案。我错过了什么吗?
改为使用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 语法。