On 28 Sep 2016, at 18:39, Michael Ilseman <milse...@apple.com> wrote:
> Could you share the generated interface for these functions, so that we can > see how they are being imported into Swift? Based on some random expat docs I found on the ’net [1], I grabbed the relevant declarations and put them in a bridging header. --------------------------------------------------------------------------- typedef struct XML_Parser_struct * XML_Parser; typedef uint8_t XML_Char; typedef void (*XML_EndElementHandler)(void *userData, const XML_Char *name); void XML_SetEndElementHandler(XML_Parser p, XML_EndElementHandler); --------------------------------------------------------------------------- With that I see that XML_EndElementHandler has the signature: typealias XML_EndElementHandler = (UnsafeMutableRawPointer?, UnsafePointer<XML_Char>?) -> Void However, John is trying to use: { (userData: UnsafeMutableRawPointer, name: UnsafePointer<XML_Char>) -> Void in … } where the parameters differ in optionality. The fix is to make both parameters optional: { (userData: UnsafeMutableRawPointer?, name: UnsafePointer<XML_Char>?) in … } I belive this change is the result of: * SE-0055 “Make unsafe pointer nullability explicit using Optional” <https://github.com/apple/swift-evolution/blob/master/proposals/0055-optional-unsafe-pointers.md> * SE-0054 “Abolish ImplicitlyUnwrappedOptional type” <https://github.com/apple/swift-evolution/blob/master/proposals/0054-abolish-iuo.md> Share and Enjoy -- Quinn "The Eskimo!" <http://www.apple.com/developer/> Apple Developer Relations, Developer Technical Support, Core OS/Hardware [1] <http://www.hpc.wm.edu/SciClone/documentation/software/misc/expat/reference.html> _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users