How to correctly initialize an UnsafePointer in Swift? -


i'm trying use ctfontcreatepathforglyph(font: ctfont?, glyph: cgglyph, transform: cconstpointer<cgaffinetransform>):

let myfont = ctfontcreatewithname("helvetica", 12, nil) let myglyph = ctfontgetglyphwithname(myfont, "a") let mytransform = cgaffinetransformidentity 

but how correctly pass mytransform ctfontcreatepathforglyph?

i've tried creating mytransformpointer pass function so:

var mytransformpointer: unsafepointer<cgaffinetransform> = unsafepointer().initialize(newvalue: mytransform) 

but error:

playground execution failed: error: <repl>:20:76: error: '()' not convertible 'unsafepointer<cgaffinetransform>' var mytransformpointer: unsafepointer<cgaffinetransform> = unsafepointer().initialize(newvalue: mytransform) 

so tried explicitly naming type:

var mytransformpointer: unsafepointer<cgaffinetransform> = unsafepointer<cgaffinetransform>().initialize(newvalue: mytransform) 

and different error:

playground execution failed: error: <repl>:20:95: error: not find overload 'init' accepts supplied arguments var mytransformpointer: unsafepointer<cgaffinetransform> = unsafepointer<cgaffinetransform>().initialize(newvalue: mytransform)                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

the auto-complete suggests should work?

the simplest solution using withunsafepointer function:

let myfont = ctfontcreatewithname("helvetica", 12, nil) let myglyph = ctfontgetglyphwithname(myfont, "a") var mytransform = cgaffinetransformidentity  var path = withunsafepointer(&mytransform) { (pointer: unsafepointer<cgaffinetransform>) -> (cgpath) in     return ctfontcreatepathforglyph(myfont, myglyph, pointer) } 

the initialize not constructor. have alloc new memory using unsafepointer<t>.alloc, initialize , dealloc. function withunsafepointer you.

note mytransform cannot constant (var not let) otherwise cannot use inout param (&mytransform).


Comments

Popular posts from this blog

database - VFP Grid + SQL server 2008 - grid not showing correctly -

jquery - Set jPicker field to empty value -

.htaccess - htaccess convert request to clean url and add slash at the end of the url -