Swift3 为什么这段代码没有';t在Xcode 8.2.1上编译

Swift3 为什么这段代码没有';t在Xcode 8.2.1上编译,swift3,xcode8.2,Swift3,Xcode8.2,我试图将一个完成块传递给Objective-CAPI,但Xcode表示构建失败,原因是信号:分段错误:11 有问题的行似乎位于BrowsealFilesInRouter方法中: let completion = { (response: Dictionary<AnyHashable, Any>?, error: NSError?) in print("response") } as? UPPResponseBlock device.contentDirect

我试图将一个完成块传递给Objective-CAPI,但Xcode表示构建失败,原因是信号:分段错误:11

有问题的行似乎位于BrowsealFilesInRouter方法中:

let completion = { (response: Dictionary<AnyHashable, Any>?, error: NSError?) in
        print("response")
    } as? UPPResponseBlock

device.contentDirectoryService().browse(withObjectID: "0", browseFlag: BrowseDirectChildren, filter: "dc:title,upnp:originalTrackNumber,res,res@duration", startingIndex: 0, requestedCount: 0, sortCritera: nil, completion: completion!)

let completion={(回复:Dictionary

联系了苹果,他们在Xcode 8.3 beta 2中修复了它

如果仍然使用Xcode 8.2.1,我发现了以下解决方法

当您使用尾随闭包语法直接在函数中传递闭包时,类型推断可以很好地工作:

device.contentDirectoryService().browse(withObjectID: "0", browseFlag: BrowseDirectChildren, filter: "", startingIndex: 0, requestedCount: 0, sortCritera: nil) { (response, error) in
        if let resp = response {
            print(resp)
        }
    }
device.contentDirectoryService().browse(withObjectID: "0", browseFlag: BrowseDirectChildren, filter: "", startingIndex: 0, requestedCount: 0, sortCritera: nil) { (response, error) in
        if let resp = response {
            print(resp)
        }
    }