Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何确定包中是否不存在命名的NSColor?_Swift_Macos_Cocoa_Nscolor - Fatal编程技术网

Swift 如何确定包中是否不存在命名的NSColor?

Swift 如何确定包中是否不存在命名的NSColor?,swift,macos,cocoa,nscolor,Swift,Macos,Cocoa,Nscolor,为了准备所有即将到来的macOS颜色更改(即暗模式),我尝试使用xcassets文件中定义的颜色。我通过名称引用颜色,如下所示: NSColor(named: NSColor.Name("App Control Foreground Color")) NSColor(named: NSColor.Name("App Control Foreground Color")) ?? NSColor.textColor 我希望,如果指定的颜色名称在任何可用资源中都不存在,那么这个NSColor初始值

为了准备所有即将到来的macOS颜色更改(即暗模式),我尝试使用xcassets文件中定义的颜色。我通过名称引用颜色,如下所示:

NSColor(named: NSColor.Name("App Control Foreground Color"))
NSColor(named: NSColor.Name("App Control Foreground Color")) ?? NSColor.textColor
我希望,如果指定的颜色名称在任何可用资源中都不存在,那么这个NSColor初始值设定项将返回nil,我将能够编写如下代码:

NSColor(named: NSColor.Name("App Control Foreground Color"))
NSColor(named: NSColor.Name("App Control Foreground Color")) ?? NSColor.textColor
相反,如果命名颜色不存在,则初始值设定项将创建一个具有未指定颜色空间的非颜色。反过来,这实际上只会使事物在使用时变得透明,并且不会产生警告


有什么好方法可以检测包中是否实际不存在命名颜色,以及NSColor(命名:)初始值设定项是否给了我“坏”颜色?

Swift游戏中的行
let color=NSColor(命名:NSColor.Name(“无效颜色”)
导致错误“无法编码没有颜色空间的颜色”.在运行真正的macOS应用程序时,我似乎没有收到此警告。如果我尝试对这些“非颜色”之一执行某些无效操作,例如尝试获取红色/蓝色/绿色组件,我将收到一些控制台警告。但是,我想知道我的颜色在那之前很久是无效的。看起来像个虫子。也许你可以检查一下它的
colorname组件
?我向苹果公司发出了代码级支持通知单,他们已经确认这似乎是一个bug。提交了一个问题,如果我从苹果得到更多信息,我会更新这个问题。