1
이것은 내가 엑스 코드 7.3.1에 사용 된 코드는 그 괜찮 았는데 :이 엑스 코드 8.0 보정 코드가ScriptingBridge 코드 오류 및 신속한 3.0
var selectedFiles = NSMutableArray(capacity:1)
let finder: AnyObject! = SBApplication(bundleIdentifier:"com.apple.finder")
let finderObject = finder.selection as! SBObject
let selection: AnyObject! = finderObject.get()
let items = selection.arrayByApplyingSelector(Selector("URL"))
let filteredfiles = (items as NSArray).pathsMatchingExtensions(["ai","pdf","ap","paf","pafsc"])
for item in filteredfiles {
let url = NSURL(string:item ,relativeToURL:nil)
selectedFiles.addObject(url!)
}
하고 문제가 해결되지 않습니다 마지막 줄에 오류가 발생했습니다.
오류 = 비 기능 유형 '[모두]의 값을 호출 할 수 없습니다!'
var selectedFiles = NSMutableArray(capacity:1)
let finder: AnyObject! = SBApplication(bundleIdentifier:"com.apple.finder")
let finderObject = finder.selection as! SBObject
if let selection = finderObject.get() as AnyObject?{
let items = selection.array(#selector(getter: NSTextCheckingResult.url))
let filteredfiles = (items as NSArray).pathsMatchingExtensions(["ai","pdf","ap","paf","pafsc"])
for item in filteredfiles {
let url = NSURL(string:item ,relativeToURL:nil)
selectedFiles.addObject(url!)
}
}
나는 많은 해결책을 시도했지만 불행히도 단서를 찾을 수 없습니다. 스위프트 3.0x API가 크게 바뀌었기 때문에 이것이라고 생각합니다 .... 도움이 될 것입니다!
번개 빠른 답변 주셔서 감사합니다. 그것은 아주 잘 작동합니다. 필자는 AppleScriptObjC로 프로젝트를 만들었지 만 대부분의 경우 다른 스위퍼와 함께 Swift를 사용하려고합니다. 때로는 그렇지 않을 수도 있습니다! –
사람들이 AppleScriptObjC를 사용하는 것이 권장되는 이유는 ScriptingBridge가 AS에서 완벽하게 작동하여 SB에서 실패하는 많은 명령을 일으키는 것보다 버그 및 장애/누락 된 기능으로 가득 차 있다는 것입니다. 즉, Swift의 훨씬 엄격한 타이핑 때문에 ObjC보다 Swift에서 사용하기가 더 까다 롭습니다. FWIW 저는 AppleScript에 대한 진정한 신속하고 친근한 대안 인 네이티브 [Swift-to-AppleEvent 브리지] (https://bitbucket.org/hhas/swiftae)를 개발 중입니다. 내 장기간의 지원은 Apple/Swift 개발자들 사이에서 얼마나 많은 지원이 이루어질 수 있는지에 달려 있습니다. – foo
"AppleScriptObjC를 사용하는 것이 좋습니다"와 관련하여 Swift의 AppleScriptObjC selectedFinderFiles 구현은 어떻게 생겼을까요? Objective-C 나 AppleScript 코드를 추가하지 않고도 신속한'AppleScriptObjC' 구현이 가능합니까? –