gpt4 book ai didi

swift - 将 AppleScript 字符串列表转换为 Swift 数组

转载 作者:行者123 更新时间:2023-11-30 10:47:05 25 4
gpt4 key购买 nike

我有一个复杂的 AppleScript,它返回我需要从 Swift 访问的字符串列表。我将其归结为一个简单的示例,但我只是不知道如何将 AppleScript 字符串映射到 Swift 字符串数组。

let listOfStringsScript = """
set listOfStrings to { "one", "two", "three" }
"""

if let scriptObject = NSAppleScript(source: listOfStringsScript) {
var errorDict: NSDictionary? = nil
let resultDescriptor = scriptObject.executeAndReturnError(&errorDict)

if errorDict == nil {
// TODO: convert the resultDescriptor (NSAppleEventDescriptor) into an array of strings
print(resultDescriptor)
// OUTPUT: <NSAppleEventDescriptor: [ 'utxt'("one"), 'utxt'("two"), 'utxt'("three") ]>
}
}

最佳答案

在@Alexander 和@MartinR 的帮助下回答:

extension NSAppleEventDescriptor {

func toStringArray() -> [String] {
guard let listDescriptor = self.coerce(toDescriptorType: typeAEList) else {
return []
}

return (0..<listDescriptor.numberOfItems)
.compactMap { listDescriptor.atIndex($0 + 1)?.stringValue }
}

}

...

let resultDescriptor = scriptObject.executeAndReturnError(&errorDict)
let subjectLines = resultDescriptor.toStringArray()

关于swift - 将 AppleScript 字符串列表转换为 Swift 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55551772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com