2016-05-15 83 views
1

我創建了一個名爲pdfData變量:值類型「StartMorgagesViewPage2」沒有成員「pdfData2」

var pdfData: NSData { 
    let result = NSMutableData() 
    UIGraphicsBeginPDFContextToData(result, frame, nil) 
    guard let context = UIGraphicsGetCurrentContext() else { return result } 
    UIGraphicsBeginPDFPage() 
    layer.renderInContext(context) 
    UIGraphicsEndPDFContext() 
    return result 
} 

但後來當我引用它:

self.pdfData.writeToURL(NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!.URLByAppendingPathComponent("Page2.pdf"), atomically: true) // what it is saved as 


    self.pdfData.writeToFile("Page2.pdf", atomically: false) 

我得到兩個錯誤「的價值類型'StartMorgagesViewPage2'沒有成員'pdfData2'。這裏是我的代碼:

import UIKit 


class StartMorgagesViewPage2: UIView { 

    override func didMoveToSuperview() { 

     var gameTimer = NSTimer!() 
     gameTimer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "screenshot", userInfo: nil, repeats: false) 


     /* label.text = "\(instructedbyvalue)" 
     accountnumberlabel.text = "\(accountnumbersvalue)" //(boo) //"boooooo" 
     applicantslabel.text = "\(applicantsvalue)" 
     propertyaddresslabel.text = "\(propertyaddressvalue)" 
     eircodedetails.text = "\(eircodedetailsvalue)" 
     */ 


     //Saving 


    } 


    func screenshot() { 
     print("screenshot") 

     var pdfData: NSData { 
      let result = NSMutableData() 
      UIGraphicsBeginPDFContextToData(result, frame, nil) 
      guard let context = UIGraphicsGetCurrentContext() else { return result } 
      UIGraphicsBeginPDFPage() 
      layer.renderInContext(context) 
      UIGraphicsEndPDFContext() 
      return result 
     } 




     self.pdfData.writeToURL(NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!.URLByAppendingPathComponent("Page2.pdf"), atomically: true) // what it is saved as 


     self.pdfData.writeToFile("Page2.pdf", atomically: false) 
     print(NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!.path!) 




    } 




} 

下面是錯誤的圖片:my errors

我想不出可能發生的原因。我試過清洗,建立和運行應用程序。

+1

將'pdfData'聲明移出你的'screenshot'函數 - 或者省略'self'(你通常應該這樣做),這取決於你在這裏要做什麼(不管你想要一個計算出的屬性還是不)。 – Hamish

+0

謝謝,當我刪除自己。有效 。 @ originaluser2你想發佈這個答案嗎? –

+0

當然可以!我只是沒有開始,因爲我不確定你是否想要一個計算的屬性或只是一個計算的變量。很高興我有幫助:) – Hamish

回答

0

的問題是你想你的pdfData通過使用self訪問 - 但pdfData不是self一個實例成員,它只是一個普通的舊變量(儘管計算的一個)。

因此該解決方案是簡單地刪除self

pdfData.writeToFile("Page2.pdf", atomically: false) 

你還應該注意的是,你應該更喜歡而該類引用實例成員(屬性或方法)時使用self含蓄,因爲它使您的代碼更具可讀性。例如 - 使用someMethodCall()而不是self.someMethodCall()

相關問題