Ios Xcode 6 Swift WebThread崩溃,EXC\u错误\u访问错误

Ios Xcode 6 Swift WebThread崩溃,EXC\u错误\u访问错误,ios,xcode,swift,uiwebview,exc-bad-access,Ios,Xcode,Swift,Uiwebview,Exc Bad Access,我正在使用Xcode 6和Swift在iOS应用程序中通过UIWebView显示PDF文件,如下所示: @IBOutlet weak var displayWebView: UIWebView! func displayView(viewfile: NSData){ displayWebView.loadData(viewfile, MIMEType: "application/pdf", textEncodingName: "UTF-8", baseURL: nil) } view

我正在使用Xcode 6和Swift在iOS应用程序中通过UIWebView显示PDF文件,如下所示:

@IBOutlet weak var displayWebView: UIWebView!

func displayView(viewfile: NSData){
    displayWebView.loadData(viewfile, MIMEType: "application/pdf", textEncodingName: "UTF-8", baseURL: nil)
}
viewfile是一个NSData,它来自上一个屏幕中的segue,该屏幕是一个表格视图

PDF的显示工作正常。但是,当应用程序往返于上一个屏幕时,应用程序在“loadData”步骤中崩溃,WebThread xx:EXC_BAD_ACCESS code=EXC_I386_GPFLT消息如下:

libobjc.A.dylib`objc_msgSend:
    0x106da3000 <+0>:   testq  %rdi, %rdi
    0x106da3003 <+3>:   jle    0x106da3068               ; <+104>
    0x106da3005 <+5>:   movq   (%rdi), %r11
    0x106da3008 <+8>:   movq   %rsi, %r10
->  0x106da300b <+11>:  andl   0x18(%r11), %r10d    WebThread (24): EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    0x106da300f <+15>:  shlq   $0x4, %r10
    0x106da3013 <+19>:  addq   0x10(%r11), %r10
    0x106da3017 <+23>:  cmpq   (%r10), %rsi
有时,错误是:

WebKitLegacy`-[WebDataSource(WebPrivate) dataSourceDelegate]:
    0x10c51dbb0 <+0>:  pushq  %rbp
    0x10c51dbb1 <+1>:  movq   %rsp, %rbp
    0x10c51dbb4 <+4>:  movq   0x11ad95(%rip), %rax      ; WebDataSource._private
    0x10c51dbbb <+11>: movq   (%rdi,%rax), %rax
->  0x10c51dbbf <+15>: movq   0x18(%rax), %rax     WebThread (17): EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    0x10c51dbc3 <+19>: popq   %rbp
    0x10c51dbc4 <+20>: retq   
    0x10c51dbc5 <+21>: nopw   %cs:(%rax,%rax)
无论目标是iOS 8还是iOS 7,这些崩溃都会发生,崩溃的地点看起来是随机的。虽然也有类似症状的帖子,但它们是客观C解决方案,而不是Swift


有人会在Swift中通知问题的解决方案吗?

为什么不在调用loadData后更新视图?块内的执行相对于其线程仍然是同步的

[查询findObjectsInBackgroundWithBlock:^NSArray*\u可为空的对象,NSError*\u可为空的错误{ 如果错误{ //处理错误 } 否则{ 调度\u异步调度\u获取\u主队列^{ [自动加载数据]; [自我更新视图]; }; } }];

查看代码是否从主线程执行,如果不是,则从该线程执行,以防万一。代码不是从GetDataInBackgroundithBlock中的块从主线程执行,以从parse.com获取数据,然后在块中执行loaddata,确保在显示之前提取数据。如果从主线程执行loaddata,则不知道该块已完成。在这种情况下,我如何知道主线程中的GetDataInBackgroundithBlock已完成,然后执行loaddata?