我是Swift开发的新手。我正在Swift中为MacOS(而非iOS(编写一个应用程序,并试图调整此Apple Sample Objective-C项目中的某些代码以供我的程序使用。
我遇到的问题是某些Apple定义的常数(例如kCGWindowImageDefault
和kCGWindowListOptionAll
(导致Xcode报告编译时错误"使用未解决的标识符[标识符]。
有些令人惊讶的是,如果我右键单击kCGWidowImageDefault
并选择"跳转到定义",则Xcode di di 跳到该常数的定义(在CoreGraphics> cgwindow.h> cgwindowimageoption中( - 因此Xcode似乎确实知道那个常数是什么。
这是我的ViewController.swift文件的相关片段:
import Cocoa
import CoreGraphics
class ViewController: NSViewController {
...
func myFunction() {
// *** XCode reports the error on kCGWindowImageDefault on this line:
let imageOptions : CGWindowImageOption = kCGWindowImageDefault
...
}
}
Apple文档(如上所述(并不表示要使用这些常数需要什么import
。
xcode die 似乎成功地识别了我正在使用的类型,例如 CGWindowImageOption
-只是它没有识别的常数。
为了成功地使用kCGWindowImageDefault
和类似的常数,我需要做什么?
kCGWindowImageDefault
仅适用于Objective-C,而不是Swift。在Swift中,CGWindowImageOption
是OptionSet
。对于默认值,您只需使用一个空选项集:
let imageOptions : CGWindowImageOption = []
对于CGWindowListOption
,您可以做:
let listOptions: CGWindowListOption = .optionAll
确保您查看这些枚举的Swift参考文档。您不能使用Objective-C值。