'StartMorgagesViewPage2' 类型的值没有成员 'pdfData2'
Value of type 'StartMorgagesViewPage2' has no member 'pdfData2'
我创建了一个名为 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)
我收到两个错误“'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!)
}
}
这是错误的图片: .
我想不出会发生这种情况的原因。我已尝试清洁、构建和 运行 应用程序。
问题是您试图通过使用 self
访问您的 pdfData
– 但 pdfData
不是 self
的实例成员,它只是一个普通旧变量(尽管是计算的变量)。
因此,解决方案是简单地删除 self
:
pdfData.writeToFile("Page2.pdf", atomically: false)
您还应该注意,在引用实例成员(属性或方法)时,您应该更喜欢隐式使用 self
而在 class 中,因为它使您的代码更具可读性。例如——使用 someMethodCall()
而不是 self.someMethodCall()
.
我创建了一个名为 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)
我收到两个错误“'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!)
}
}
这是错误的图片:
我想不出会发生这种情况的原因。我已尝试清洁、构建和 运行 应用程序。
问题是您试图通过使用 self
访问您的 pdfData
– 但 pdfData
不是 self
的实例成员,它只是一个普通旧变量(尽管是计算的变量)。
因此,解决方案是简单地删除 self
:
pdfData.writeToFile("Page2.pdf", atomically: false)
您还应该注意,在引用实例成员(属性或方法)时,您应该更喜欢隐式使用 self
而在 class 中,因为它使您的代码更具可读性。例如——使用 someMethodCall()
而不是 self.someMethodCall()
.