[swift-users] CGPathApply

Zach Waldowski zach at waldowski.me
Fri May 13 10:40:52 CDT 2016


100% right. That solution is by far better if you wanted to work with
the CGPathElement, since that's block-representable. My solution was
assuming (perhaps wrongly) to want to represent it as a Swift type.
You're the best, as always! :)

Cheers!
Zach

On Fri, May 13, 2016, at 12:57 AM, Quinn The Eskimo! via swift-users
wrote:
> 
> On 13 May 2016, at 06:24, Zach Waldowski via swift-users
> <swift-users at swift.org> wrote:
> 
> > Problems are just like any context-based C API, you need to squeeze all
> 
> … and the best way to do that is to use a closure.
> 
> typealias CGPathApplierBlock = @convention(block) (CGPathElement) -> Void
> 
> func CGPathApplyBlock(path: CGPath, @noescape block: CGPathApplierBlock)
> {
>    CGPathApply(path, unsafeBitCast(block,
>    UnsafeMutablePointer<Void>.self), { info, element in 
>        let block2 = unsafeBitCast(info, CGPathApplierBlock.self)
>        block2(element.memory)
>    })
> }
> 
> Share and Enjoy
> --
> Quinn "The Eskimo!"                    <http://www.apple.com/developer/>
> Apple Developer Relations, Developer Technical Support, Core OS/Hardware
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users


More information about the swift-users mailing list