2016-05-22 106 views
-1

所以我試圖用swift生成PDF。我一直試圖從目標C轉換爲swift,現在有一些我不知道如何解決的錯誤。使用Swift 2.0生成PDF

下面是代碼:

@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路徑:[AnyObject] = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,真)

我收到錯誤「使用未解析的標識符」

VAR textRect:的CGRect = CGRectMake(0,0,[[自myTextView]幀] .size.with,self.myTextView.frame.size.height)

這裏我收到 「期望分離器」

在此先感謝。

回答

2

您的錯誤與PDF創建無關,並與Swift語法有關。

  1. 將指定目錄的參數作爲enum導入到Swift中。因此,對於目錄,您的輸入應該是NSSearchPathDirectory的一些情況,例如NSSearchPathDirectory.DocumentDirectory(或更簡潔.DocumentDirectory)。 NSSearchPathDomainMask是帶有靜態常量的struct,因此它被視爲struct。例如,NSSearchPathDomainMask.UserDomainMask(或更簡潔.UserDomainMask)。
  2. 你的第二個參數不是Swift語法。嘗試:

    var textRect = CGRect(0,0,self.myTextView.frame.size.width, self.myTextView.frame.size.height)

+0

在我DrawText函數的最後一行** myString.drawInRect(textRect)上**我收到錯誤**無法類型的值「的CGRect」轉換爲預期的參數類型* *。 – mogren3000

+0

它說預期的參數類型是什麼?如果不行,請刪除該行並重新輸入,但讓'drawInRect'函數自動完成並查看參數佔位符所說的內容。 –