如何在swift中从本机swift String或NSString创建CFString
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)
Run Code Online (Sandbox Code Playgroud)
Mag*_*alp 35
刚刚施展它:
var str = "Hello, playground" as CFString
NSString(format: "type id: %d", CFGetTypeID(str))
Run Code Online (Sandbox Code Playgroud)
fre*_*tag 28
如果要转换非文字字符串,则必须将其强制转换为NSString.
let replacement = "World"
let string = "Hello, \(replacement)"
let cfstring:CFString = string as NSString
Run Code Online (Sandbox Code Playgroud)
Swift知道如何将swift字符串转换为NSString,将NSString转换为CFString,但似乎不知道如何在一个中执行这两个步骤.
您可以在 CFString 和 NSString 之间或 NSString 和 String 之间进行转换。技巧是在 CFString 和 String 之间转换时必须进行双重转换。
这有效:
var cfstr: CFString = "Why does Swift require double casting!?"
var nsstr: NSString = cfstr as NSString
var str: String = nsstr as String
Run Code Online (Sandbox Code Playgroud)
这会给出错误“'CFString'不是'NSString'的子类型”:
var cfstr: CFString = "Why does Swift require double casting!?"
var str: String = cfstr as String
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18407 次 |
最近记录: |