我目前正在基于ResearchKit框架(用Objective-C编写)快速开发医学研究应用程序。我已将签名分配给同意文档,并且正在尝试使用makePDFWithCompletionHandler创建PDF并通过电子邮件发送。这是我目前在视图控制器中用于同意任务的完成处理程序:
func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) {
taskViewController.dismissViewControllerAnimated(true, completion: nil)
if reason == .Completed {
ConsentDocument.makePDFWithCompletionHandler(/*Completion handler Block*/){
//Email pdf code here
}
}
}
我不知道要把什么作为完成处理程序块。另外,一旦创建了pdf文件,我找不到通过电子邮件发送代码的代码。
在我的同意任务中,我有以下代码将签名分配给文档:
let signatureResult = ORKConsentSignatureResult(identifier: "ConsentDocumentParticipantSignature")
signatureResult.applyToDocument(ConsentDocument)
最佳答案
对于makePDFWithCompletionHandler完成块,这对我有用(请注意,它将其写入到该块中的文件中):
ConsentDocument .makePDFWithCompletionHandler({ (NSData pdfFile, NSError error) -> Void in
// println("pdf created")
// finding document path //TODO: Remove if not needed
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] .stringByAppendingPathComponent("Consent.pdf")
pdfFile!.writeToFile(documentsPath, atomically: false)
println(consentDocumentFromDirectory)
})