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

このエンコーディングはドキュメントに記載されていますが、機能していません。

MacRoman を取得するために使用したCFStringGetSystemEncoding()

私の質問は、これ以外の CFStringEncoding を取得する方法です。

4

2 に答える 2

0

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 に答える