0
let cStringRef : CFStringRef = CFStringCreateWithCString(nil, NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")! , kCFStringEncodingMacRoman)

此编码不起作用,尽管它存在于文档中。

为了获得 MacRoman,我使用了CFStringGetSystemEncoding()

我的问题是如何检索除此之外的 CFStringEncoding 。

4

2 回答 2

0

如果您只想转换 to 的路径Luffy.mp3,请CFString使用:

let cStringRef = NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")! as CFString

编辑:如果你想走很长的路:

let path = NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")!
let cString = path.cStringUsingEncoding(NSMacOSRomanStringEncoding)!

let cfString = CFStringCreateWithCString(nil, cString, CFStringBuiltInEncodings.MacRoman.rawValue)
于 2016-06-25T03:16:33.873 回答
0

该代码没有任何意义

路径是一个 NSString,直接兼容 String 和 CFStringRef。任何地方都看不到C弦。

我真的建议您弄清楚为什么要使用 CFString (这很不寻常)并删除该用法。或者,如果您一直在从互联网上复制一些代码,那就去寻找一些更新的代码来复制。如果您的 Swift 代码使用 CFStringRef,那么您做错了什么。

于 2016-06-25T07:55:51.040 回答