2016-06-24 5 views
0
let cStringRef : CFStringRef = CFStringCreateWithCString(nil, NSBundle.mainBundle().pathForResource("Luffy", ofType: "mp3")! , kCFStringEncodingMacRoman) 

このエンコーディングは、ドキュメントには記載されていますが、このエンコーディングは機能しません。 CFStringGetSystemEncoding()以外のSwiftでCFStringEncodingを取得する方法は?

はMacRomanのを得るために、私は CFStringGetSystemEncoding()

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

答えて

0

あなたはこの使用し、CFStringLuffy.mp3のパスを変換したい場合:

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

let cfString = CFStringCreateWithCString(nil, cString, CFStringBuiltInEncodings.MacRoman.rawValue) 
+0

はい、問題は、他の方法で特定のエンコードを取得することですか? kCFStringEncodingMacRomanが機能しないためです。 – Krishna

0

:あなたは長い道のりを移動したい場合は:

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

編集をそのコードは意味がありません何か

パスはNSStringであり、StringおよびCFStringRefと直接互換性があります。 Cの文字列はどこにも見えません。

私は実際に地球上でCFString(それ以外のもの)を使い、その使用法を削除する理由を理解することをお勧めします。または、あなたがインターネットからいくつかのコードをコピーしていたら、コピーする新しいコードを見つけてください。スウィフトコードがCFStringRefを使用する場合、あなたは何か誤ったことをしています。

関連する問題