2016-05-15 14 views
1

Ich habe eine Variable pdfData genannt:Wert vom Typ 'StartMorgagesViewPage2' hat kein Mitglied '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 
} 

aber dann, wenn ich darauf verweisen:

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) 

ich zwei Fehler ‚Wert der type 'StartMorgagesViewPage2' hat kein Mitglied 'pdfData2'. Hier ist mein Code:

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!) 




    } 




} 

Hier ist ein Bild des Fehlers: my errors.

Ich kann nicht einen Grund denken, dass dies passieren könnte. Ich habe versucht, die App zu reinigen, zu erstellen und auszuführen.

+1

Verschieben Sie die 'pdfData' Deklaration aus Ihrer' screenshot' Funktion - oder lassen Sie das 'self' weg (was Sie normalerweise tun sollten), abhängig davon, was Sie hier machen wollen (ob Sie eine berechnete Eigenschaft wollen oder nicht). – Hamish

+0

Danke, wenn ich selbst entfernt habe. es funktionierte . @ originaluser2 Möchtest du das als Antwort posten? –

+0

Sicher Sache! Ich bin nur anfangs nicht gegangen, da ich nicht sicher war, ob Sie eine berechnete Eigenschaft oder nur eine berechnete Variable haben wollten. Froh, dass ich Hilfe war :) – Hamish

Antwort

0

Das Problem ist, Sie versuchen, Ihre pdfData durch self mit zugreifen - aber pdfData ist keine Instanz Mitglied self, es ist nur eine einfache alte Variable (wenn auch berechnet eins).

Die Lösung ist daher einfach die entfernen self:

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

Sie auch darauf hingewiesen, dass Sie sollten self bevorzugen implizit zu verwenden, wenn zum Beispiel Mitgliedern (Eigenschaften oder Methoden) beziehen, während in dieser Klasse, wie es macht Ihren Code lesbarer. Zum Beispiel - mit someMethodCall() anstelle von .

Verwandte Themen