Wenn Sie versuchen, eine Variable zu konvertieren Das enthält eine schnelle Zeichenfolge zu einem CFString. Ich denke @freytag hat es mit seiner Erklärung genagelt.
Falls jemand ein Beispiel sehen wollte, dachte ich, ich würde ein Code-Snippet einfügen, wo ich eine Swift-Zeichenfolge ("ArialMT" in diesem Fall) an einen NSString übergeben, um es mit der CTFontCreateWithName -Funktion von Core Text zu verwenden (benötigt einen CFString). (Hinweis: Die Umwandlung von NSString in CFString ist implizit).
// Create Core Text font with desired size
let coreTextFont:CTFontRef = CTFontCreateWithName("ArialMT" as NSString, 25.0, nil)
// Center text horizontally
var paragraphStyle: NSMutableParagraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = NSTextAlignment.Center
// Center text vertically
let fontBoundingBox: CGRect = CTFontGetBoundingBox(coreTextFont)
let frameMidpoint = CGRectGetHeight(self.frame)/2
let textBoundingBoxMidpoint = CGRectGetHeight(fontBoundingBox)/2
let verticalOffsetToCenterTextVertically = frameMidpoint - textBoundingBoxMidpoint
// Create text with the following attributes
let attributes = [
NSFontAttributeName : coreTextFont,
NSParagraphStyleAttributeName: paragraphStyle,
kCTForegroundColorAttributeName:UIColor.whiteColor().CGColor
]
var attributedString = NSMutableAttributedString(string:"TextIWantToDisplay", attributes:attributes)
// Draw text (CTFramesetterCreateFrame requires a path).
let textPath: CGMutablePathRef = CGPathCreateMutable()
CGPathAddRect(textPath, nil, CGRectMake(0, verticalOffsetToCenterTextVertically, CGRectGetWidth(self.frame), CGRectGetHeight(fontBoundingBox)))
let framesetter: CTFramesetterRef = CTFramesetterCreateWithAttributedString(attributedString)
let frame: CTFrameRef = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, attributedString.length), textPath, nil)
CTFrameDraw(frame, context)
In diesem Fall, warum nicht einfach verwenden Sie "let url = NSURL.fileURLWithPath (Pfad, isDirectory: false)" –
sie sind alle überbrückt, einfach umwandeln sie – Sulthan
@EricD. Was meinen Sie? – ciccioska