Comment faire pour convertir rapidement une Chaîne de CFString
Comment puis-je créer un CFString d'un natif swift Chaîne ou NSString dans swift
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)
- Dans ce cas, pourquoi ne pas simplement utiliser
let url = NSURL.fileURLWithPath(path, isDirectory:false)
- ils sont tous reliés, les jeter
- que voulez-vous dire?
- Je comprends, mais je pense que c'est un IOS question et non seulement à moi, je suppose...merci
Vous devez vous connecter pour publier un commentaire.
Juste de voter pour elle:
var str = str1 as CFString
etstr1
est unString
, j'ai "Impossible de convertir l'expression est de type 'CFString' de type '$T1'." Quand j'ai taper explicitementstr
, comme dansvar str:CFString = str1 as CFString
, j'ai "Impossible de convertir l'expression est de type 'CFString' de type 'CFString'." Ce qui se passe?Si vous voulez convertir un non-littéral de chaîne, vous devez le jeter aux NSString.
Swift sait comment faire pour convertir rapidement une chaîne à un NSString et un NSString à un CFString, mais ne semble pas savoir comment faire les deux étapes en une seule.
Vous jeter entre CFString et NSString, ou entre NSString et de la Corde. Le truc, c'est que vous devez double cast lors du passage entre CFString et de la Corde.
Cela fonctionne:
Cela donne l'erreur "'CFString" n'est pas un sous-type de "NSString'":
Aujourd'hui j'ai essayé de le faire dans une aire de jeux pour tester une API C et juste
import Foundation
fait"string" as CFString
travail.Si vous essayez de convertir un variable qui contient une Swift chaîne CFString je pense que @freytag cloué avec son explication.
Dans le cas où quelqu'un voulait le voir un exemple que je pensais que je voudrais inclure un extrait de code où j'ai jeté un rapide de chaîne ("ArialMT" dans ce cas) à un NSString afin de l'utiliser avec les CTFontCreateWithName fonction de Base du Texte (ce qui nécessite un CFString). (Remarque: la distribution de NSString à CFString est implicite).