Ios 类型为'的值;开始组织查看页面2';没有成员';pdfData2';

Ios 类型为'的值;开始组织查看页面2';没有成员';pdfData2';,ios,xcode,swift,writetofile,Ios,Xcode,Swift,Writetofile,我创建了一个名为pdfData的变量: var pdfData: NSData { let result = NSMutableData() UIGraphicsBeginPDFContextToData(result, frame, nil) guard let context = UIGraphicsGetCurrentContext() else { return result } UIGraphicsBeginPDFPage() layer.re

我创建了一个名为pdfData的变量:

 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)
我发现两个错误“StartOrgangesViewPage2”类型的值没有成员“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!)




    }




}
以下是错误的图片:


我想不出发生这种事的原因。我已经尝试过清理、构建和运行该应用程序。

问题是您试图通过使用
self
访问
pdfData
——但是
pdfData
不是
self
的实例成员,它只是一个普通的旧变量(尽管是计算变量)

因此,解决方案是简单地删除
self

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

您还应该注意,在该类中引用实例成员(属性或方法)时,您应该更喜欢隐式地使用
self
,因为它使代码更具可读性。例如,使用
someMethodCall()
而不是
self.someMethodCall()
问题在于,您试图通过使用
self
访问
pdfData
——但是
pdfData
不是
self
的实例成员,它只是一个普通的旧变量(尽管是计算变量)

因此,解决方案是简单地删除
self

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

您还应该注意,在该类中引用实例成员(属性或方法)时,您应该更喜欢隐式地使用
self
,因为它使代码更具可读性。例如,使用
someMethodCall()
而不是
self.someMethodCall()

pdfData
声明移出
屏幕截图
函数,或者忽略
self
(您通常应该这样做),这取决于您在此处尝试执行的操作(无论您是否需要计算属性)。谢谢,当我删除self时,它起了作用。@originaluser2您想将其作为答案发布吗?当然!我只是没有开始,因为我不确定您是需要计算属性还是只需要计算变量。很高兴我能提供帮助:)将
pdfData
声明移出
screenshot
函数,或者忽略
self
(您通常应该这样做),这取决于您在此处尝试执行的操作(无论您是否想要计算属性)。谢谢,当我删除self时。成功了@你想把它作为答案吗?当然可以!我只是没有开始,因为我不确定您想要的是计算属性还是计算变量。很高兴我能帮上忙:)