UIWebView의 AVPlayerViewController가 메인 스레드에서 실행되지 않는 이유는 무엇입니까?

라피

My UIWebViewUIAlertController이 코드에서 다음과 같은 메시지를 표시하여 다운로드 가능한 콘텐츠를 다운로드 할 책임 이 있습니다.

    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    let nvc = self.tabBarController?.viewControllers?[1] as! UINavigationController
    let dvc = nvc.viewControllers[0] as! RCHDownloadTVC
    var isDownloadable = false
    let session = URLSession(configuration: URLSessionConfiguration.default())
    var newRequest = URLRequest(url: request.url!)
    newRequest.httpMethod = "HEAD"
    let task = session.dataTask(with: newRequest) { (data, response, error) in

        let httpResponse = response as? HTTPURLResponse

        if httpResponse?.statusCode == 200 {
            for (_, mime) in self.supportedFileTypes.enumerated() {
                if response?.mimeType == mime {
                    self.showDownloadDecisionAlert(with: { (alert) in
                        self.sharedStore.addDownload(with: (request.url?.absoluteString)!)
                        dvc.reloadDownloadController()
                        self.webView.mediaPlaybackRequiresUserAction = true
                        self.webView.allowsInlineMediaPlayback = false
                        self.webView.goBack()
                        isDownloadable = true
                        }, completionHandlerTwo: { (alert) in
                            self.webView.mediaPlaybackRequiresUserAction = false
                            self.webView.allowsInlineMediaPlayback = true
                            isDownloadable = false
                    })
                    break
                }
            }
        }
    }

    task.resume()

    if isDownloadable != true {
        return true
    } else {
        return false
    }
}

파일을 다운로드 completionHandlerTwo할 수 없는 경우 실행되지만 문제는 언제 completionHandlerTwo실행되고 UIWebView의 기본 AVPlayerViewController에 비디오가 표시됩니다.이 경고가 표시됩니다.

2016-06-21 14 : 36 : 14.962 DownloadAddict [1102 : 299310]이 애플리케이션은 백그라운드 스레드에서 자동 레이아웃 엔진을 수정하고 있으며, 이로 인해 엔진 손상 및 이상한 충돌이 발생할 수 있습니다. 이로 인해 향후 릴리스에서 예외가 발생합니다.

Stack trace:(
0   CoreFoundation                      0x0000000183cb2dc8 <redacted> + 148
1   libobjc.A.dylib                     0x0000000183317f80 objc_exception_throw + 56
2   CoreFoundation                      0x0000000183cb2cf8 <redacted> + 0
3   Foundation                          0x0000000184763b2c <redacted> + 88
4   Foundation                          0x00000001845e4c3c <redacted> + 36
5   UIKit                               0x0000000188f18d98 <redacted> + 64
6   UIKit                               0x0000000188f198b0 <redacted> + 244
7   UIKit                               0x00000001896a77f0 <redacted> + 268
8   UIKit                               0x0000000189124aa0 <redacted> + 176
9   UIKit                               0x0000000188e0c1e4 <redacted> + 656
10  QuartzCore                          0x000000018679e994 <redacted> + 148
11  QuartzCore                          0x00000001867995d0 <redacted> + 292
12  QuartzCore                          0x0000000186799490 <redacted> + 32
13  QuartzCore                          0x0000000186798ac0 <redacted> + 252
14  QuartzCore                          0x0000000186798820 <redacted> + 500
15  WebCore                             0x0000000188972270 <redacted> + 176
16  WebCore                             0x0000000188934fa4 <redacted> + 368
17  CoreFoundation                      0x0000000183c6909c <redacted> + 24
18  CoreFoundation                      0x0000000183c68b30 <redacted> + 540
19  CoreFoundation                      0x0000000183c66830 <redacted> + 724
20  CoreFoundation                      0x0000000183b90c50 CFRunLoopRunSpecific + 384
21  WebCore                             0x0000000187b7e61c <redacted> + 456
22  libsystem_pthread.dylib             0x0000000183917b28 <redacted> + 156
23  libsystem_pthread.dylib             0x0000000183917a8c <redacted> + 0
24  libsystem_pthread.dylib             0x0000000183915028 thread_start + 4
)

이는 UI가 메인 스레드에서 작동하지 않음을 의미합니다. 왜 이런 일이 발생합니까?

암호

당신은 전화해야합니다

dispatch_async(dispatch_get_main_queue()) {...}

session.dataTask뒤에 메인 스레드에서 실행합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

내 관심사의 메서드가 콘솔에서 실행되지 않는 이유는 무엇입니까?

분류에서Dev

"예"메소드가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

cellForRowAtIndexPath가 실행되지 않고 다른 메서드가 실행되는 이유는 무엇입니까?

분류에서Dev

then () 체인 메서드가 순차적으로 실행되지 않는 이유는 무엇입니까?

분류에서Dev

내 Google Guice 메서드 인터셉터가 실행되지 않지만 이유는 무엇입니까?

분류에서Dev

이 코드에서 스레드가 병렬로 실행되지 않는 이유는 무엇입니까?

분류에서Dev

이 메서드가 호출되지 않고 실행되는 이유는 무엇입니까?

분류에서Dev

ASP.NET MVC에서 인라인 JavaScript 코드가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

Meteor의 쉘 코드가 서버에서 잘 실행되지 않는 이유는 무엇입니까?

분류에서Dev

Meteor의 쉘 코드가 서버에서 잘 실행되지 않는 이유는 무엇입니까?

분류에서Dev

Cubit LoadedState의 dart에서 코드가 실행되지 않고 건너 뛰는 이유는 무엇입니까?

분류에서Dev

이 bash 스크립트가 Ubuntu에서는 실행되지 않고 온라인 환경에서는 실행되는 이유는 무엇입니까?

분류에서Dev

함수 실행 후 인스턴스 변수가 손실되지 않는 이유는 무엇입니까?

분류에서Dev

왜 백업 관련 프로세스 힘 원인 응용 프로그램의에서 onCreate가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

메서드가 정의되지 않은 이유는 무엇입니까?

분류에서Dev

PLSQL의 코드가 "예외"부분 이후에 실행되지 않는 이유는 무엇입니까?

분류에서Dev

내 빠른 코드가 순서대로 실행되지 않는 이유는 무엇입니까? Firebase 인증

분류에서Dev

인터셉터가 서블릿 필터에서 호출 된 EJB 메소드에서 실행되지 않는 이유는 무엇입니까?

분류에서Dev

Java의 기본 스택 코드가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

나머지 JS 코드로 인해 JQuery가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

내 Angular 테스트 $ scope에 메서드가 정의되지 않은 이유는 무엇입니까?

분류에서Dev

상태가 포함되지 않은 클래스 구성 요소에서 렌더링 메서드가 두 번 실행되는 이유는 무엇입니까?

분류에서Dev

NodeJS에서 Strings의 split 메소드가 동 기적으로 실행되는 이유는 무엇입니까?

분류에서Dev

NodeJS에서 Strings의 split 메소드가 동 기적으로 실행되는 이유는 무엇입니까?

분류에서Dev

Spring @Async Bean 메소드가 비동기 적으로 실행되지 않는 이유는 무엇입니까?

분류에서Dev

Spring @Async Bean 메소드가 비동기 적으로 실행되지 않는 이유는 무엇입니까?

분류에서Dev

Maven SCP에 의해 bash 스크립트가 실행되지 않는 이유는 무엇입니까?

분류에서Dev

메인 스레드에서 작업이 실행되는 이유는 무엇입니까?

분류에서Dev

Python 클래스의 set 메서드에서 NameError가 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    내 관심사의 메서드가 콘솔에서 실행되지 않는 이유는 무엇입니까?

  2. 2

    "예"메소드가 실행되지 않는 이유는 무엇입니까?

  3. 3

    cellForRowAtIndexPath가 실행되지 않고 다른 메서드가 실행되는 이유는 무엇입니까?

  4. 4

    then () 체인 메서드가 순차적으로 실행되지 않는 이유는 무엇입니까?

  5. 5

    내 Google Guice 메서드 인터셉터가 실행되지 않지만 이유는 무엇입니까?

  6. 6

    이 코드에서 스레드가 병렬로 실행되지 않는 이유는 무엇입니까?

  7. 7

    이 메서드가 호출되지 않고 실행되는 이유는 무엇입니까?

  8. 8

    ASP.NET MVC에서 인라인 JavaScript 코드가 실행되지 않는 이유는 무엇입니까?

  9. 9

    Meteor의 쉘 코드가 서버에서 잘 실행되지 않는 이유는 무엇입니까?

  10. 10

    Meteor의 쉘 코드가 서버에서 잘 실행되지 않는 이유는 무엇입니까?

  11. 11

    Cubit LoadedState의 dart에서 코드가 실행되지 않고 건너 뛰는 이유는 무엇입니까?

  12. 12

    이 bash 스크립트가 Ubuntu에서는 실행되지 않고 온라인 환경에서는 실행되는 이유는 무엇입니까?

  13. 13

    함수 실행 후 인스턴스 변수가 손실되지 않는 이유는 무엇입니까?

  14. 14

    왜 백업 관련 프로세스 힘 원인 응용 프로그램의에서 onCreate가 실행되지 않는 이유는 무엇입니까?

  15. 15

    메서드가 정의되지 않은 이유는 무엇입니까?

  16. 16

    PLSQL의 코드가 "예외"부분 이후에 실행되지 않는 이유는 무엇입니까?

  17. 17

    내 빠른 코드가 순서대로 실행되지 않는 이유는 무엇입니까? Firebase 인증

  18. 18

    인터셉터가 서블릿 필터에서 호출 된 EJB 메소드에서 실행되지 않는 이유는 무엇입니까?

  19. 19

    Java의 기본 스택 코드가 실행되지 않는 이유는 무엇입니까?

  20. 20

    나머지 JS 코드로 인해 JQuery가 실행되지 않는 이유는 무엇입니까?

  21. 21

    내 Angular 테스트 $ scope에 메서드가 정의되지 않은 이유는 무엇입니까?

  22. 22

    상태가 포함되지 않은 클래스 구성 요소에서 렌더링 메서드가 두 번 실행되는 이유는 무엇입니까?

  23. 23

    NodeJS에서 Strings의 split 메소드가 동 기적으로 실행되는 이유는 무엇입니까?

  24. 24

    NodeJS에서 Strings의 split 메소드가 동 기적으로 실행되는 이유는 무엇입니까?

  25. 25

    Spring @Async Bean 메소드가 비동기 적으로 실행되지 않는 이유는 무엇입니까?

  26. 26

    Spring @Async Bean 메소드가 비동기 적으로 실행되지 않는 이유는 무엇입니까?

  27. 27

    Maven SCP에 의해 bash 스크립트가 실행되지 않는 이유는 무엇입니까?

  28. 28

    메인 스레드에서 작업이 실행되는 이유는 무엇입니까?

  29. 29

    Python 클래스의 set 메서드에서 NameError가 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관