所以我想用swift生成一个PDF。我一直试图从目标C转换为快速,现在有一些错误,我不知道如何解决。
以下是代码:
@IBAction func createPDFOnClick(sender: AnyObject!)
{
pageSize = CGSizeMake(850,1100)
let fileName: String = "makeME.pdf"
var path: [AnyObject] = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,true)
let documentDirectory: String = path[0] as! String
let pdfPathWithFileName: String = documentDirectory.stringByAppendingString(fileName)
self.createPDF(pdfPathWithFileName)
}
func createPDF(filePath: String){
UIGraphicsBeginPDFContextToFile(filePath,CGRectZero,nil)
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0,0,850,1100),nil)
self.drawBackground()
self.drawText()
UIGraphicsEndPDFContext()
}
func drawBackground() {
let context: CGContextRef = UIGraphicsGetCurrentContext()!
let rect: CGRect = CGRectMake(0,0,pageSize!.width,pageSize!.height)
CGContextSetFillColorWithColor(context,UIColor.whiteColor().CGColor)
CGContextFillRect(context,rect)
}
func drawText() {
var context: CGContextRef = UIGraphicsGetCurrentContext()!
CGContextSetFillColorWithColor(context,UIColor.blackColor().CGColor)
var textRect: CGRect = CGRectMake(0,0,[[self myTextView]frame].size.with, self.myTextView.frame.size.height)
var myString: String = self.myTextView.text!
myString.drawInRect(textRect)
}
我的错误如下:
var path:[AnyObject] = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,true)
我收到错误"使用未解析的标识符"
var textRect:CGRect = CGRectMake(0,0,[[self myTextView] frame] .size.with,self.myTextView.frame.size.height)
我在这里得到"期待分隔符"
提前致谢。
答案 0 :(得分:2)
您的错误与PDF创建几乎没有关系,并且与Swift语法有关。
enum
导入Swift。因此,对于目录,您的输入应该是NSSearchPathDirectory
的某种情况,例如NSSearchPathDirectory.DocumentDirectory
(或者更简洁.DocumentDirectory
)。 NSSearchPathDomainMask
是带有静态常量的struct
,因此它被视为struct
。例如,NSSearchPathDomainMask.UserDomainMask
(或更简洁.UserDomainMask
)。您的第二个参数不是Swift语法。尝试:
var textRect = CGRect(0,0,self.myTextView.frame.size.width, self.myTextView.frame.size.height)