swiftcfstring

How to convert a swift String to CFString


How can i create a CFString from a native swift String or NSString in swift

    let path:String = NSBundle.mainBundle().pathForResource(name.stringByDeletingPathExtension, ofType:"pdf")
    let string:CFString = ??? path
    let url:CFURLRef = CFURLCreateWithFileSystemPath(allocator:kCFAllocatorDefault, filePath:string, pathStyle:CFURLPathStyle.CFURLPOSIXPathStyle, isDirectory:false)

Solution

  • Just cast it:

    var str = "Hello, playground" as CFString
    NSString(format: "type id: %d", CFGetTypeID(str))
    

    Note that you'll need import Foundation for cast as CFString to work.
    Otherwise if you only have import CoreFoundation, you'll need to force cast as! CFString.