2016-05-15 2 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) 

я получаю значение двух ошибок»из type '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().

Смежные вопросы