Я хочу создать pdf в каталоге документов и хочу предоставить номера страниц, поэтому мне нужен объект CGPDFDocumentRef.Crash whille Преобразование NSURL в CFURL
let fileName: NSString = "test.pdf"
let path:NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentDirectory: AnyObject = path.objectAtIndex(0)
let pdfPathWithFileName = documentDirectory.stringByAppendingPathComponent(fileName as String)
UIGraphicsBeginPDFContextToFile(pdfPathWithFileName as String, CGRectZero, nil)
let ref : CGContextRef = UIGraphicsGetCurrentContext()!
let localUrl = NSURL.fileURLWithPath(pdfPathWithFileName)
Я преобразовал путь к файлу в URL, но это ниже линии генерирует сбой, и я не знаю, почему ..?
let pdfDocumentRef: CGPDFDocumentRef = CGPDFDocumentCreateWithURL(localUrl as CFURLRef)!
У вас есть результат с момента аварии? Кроме того, попробуйте извлечь 'localUrl как CFURLRef' в отдельную строку и посмотреть, является ли это' nil', случайно, я предполагаю, что именно здесь вы столкнулись с проблемой. – pbodsk
@pbodsk: Да, он возвращает нуль, и я не знаю, почему ..? эта строка возвращает CGPDFDocumentCreateWithURL (localUrl как CFURLRef)! ноль. Хотя localUrl имеет путь к файлу. –
В Swift вам не нужно явно указывать тип переменной, если Swift может вывести тип. Например, 'let path: NSArray = NSSearchPathForDirectoriesInDomains (.DocumentDirectory, .UserDomainMask, true)' можно легко представить как 'let path = NSSearchPathForDirectoriesInDomains (.DocumentDirectory, .UserDomainMask, true)', с добавленным бонусом Swift, зная типы используется массивом 'String'. – MaddTheSane