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

эта кодировка не работает, хотя она присутствует в документации.Как получить CFStringEncoding в Swift, отличном от CFStringGetSystemEncoding()?

получить MacRoman, я использовал CFStringGetSystemEncoding()

Мой вопрос заключается в том, чтобы извлечь CFStringEncoding, кроме этого.

ответ

0

Если вы просто хотите преобразовать путь Luffy.mp3 в CFString, используйте:

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

Edit: если вы хотите пройти долгий путь:

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

Этот код не имеет никакого смысла что угодно.

Путь - это NSString, непосредственно совместимый со String и CFStringRef. В любом месте нет ни одной строки C.

Я действительно рекомендую вам понять, почему на земле вы хотите использовать CFString (что более чем необычно) и удалить это использование. Или, если вы копируете какой-то код из Интернета, и найдите новый код для копирования. Если ваш код Swift использует CFStringRef, вы делаете что-то НЕПРАВИЛЬНОЕ.