2017-11-06 30 views
5

Với ObjectiveC Tôi đang phát triển một ứng dụng SingleView nhắm mục tiêu iOS 11 có một bộ điều khiển/chế độ xem. Trong Main.storyboard ở trên cùng của khung nhìn, tôi đã bỏ WebKit View (WKWebView).Tai nạn WKWebview trên iOS11 do NSInvalidUnarchiveOperationException

tôi nhìn thấy một vụ tai nạn ở cả Simulator và trên một chiếc iPhone chạy iOS 6 11.0.1:

Chấm dứt ứng dụng do ngoại lệ còn tự do 'NSInvalidUnarchiveOperationException', lý do: 'Không thể khởi tạo lớp có tên WKWebView'

Tôi có cần gì khác để nó hoạt động không? Có vẻ như không thể khởi tạo WKWebView khi thức dậy từ bảng phân cảnh.

Các chi tiết khác:

  • phiên bản Xcode 9.0 9A235
  • Khi tôi loại bỏ các WKWebView từ Storyboard vụ tai nạn sẽ biến mất
  • App cơ sở SDK - iOS mới nhất (iOS 11); Triển khai mục tiêu 11,0
  • Sử dụng WebView (phản đối) - UIWebView, nó hoạt động
  • Tôi không cố gắng để nhanh chóng nó bằng tay

sụp đổ đống:

2017-11-06 18:38:27.765519+0200 XYZZMap[15689:1093338] *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named WKWebView' 
*** First throw call stack: 
(
    0 CoreFoundation      0x00000001056d01cb __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x0000000105032f41 objc_exception_throw + 48 
    2 CoreFoundation      0x0000000105744b95 +[NSException raise:format:] + 197 
    3 UIKit        0x000000010692d2c0 UINibDecoderDecodeObjectForValue + 323 
    4 UIKit        0x000000010692d5db UINibDecoderDecodeObjectForValue + 1118 
    5 UIKit        0x000000010692d172 -[UINibDecoder decodeObjectForKey:] + 89 
    6 UIKit        0x00000001062f866b -[UIView initWithCoder:] + 969 
    7 UIKit        0x000000010692d43d UINibDecoderDecodeObjectForValue + 704 
    8 UIKit        0x000000010692d172 -[UINibDecoder decodeObjectForKey:] + 89 
    9 UIKit        0x00000001066dd1a7 -[UIRuntimeConnection initWithCoder:] + 178 
    10 UIKit        0x000000010692d43d UINibDecoderDecodeObjectForValue + 704 
    11 UIKit        0x000000010692d5db UINibDecoderDecodeObjectForValue + 1118 
    12 UIKit        0x000000010692d172 -[UINibDecoder decodeObjectForKey:] + 89 
    13 UIKit        0x00000001066dc3a4 -[UINib instantiateWithOwner:options:] + 1262 
    14 UIKit        0x00000001063f8d07 -[UIViewController _loadViewFromNibNamed:bundle:] + 383 
    15 UIKit        0x00000001063f9610 -[UIViewController loadView] + 177 
    16 UIKit        0x00000001063f9941 -[UIViewController loadViewIfRequired] + 195 
    17 UIKit        0x00000001063fa19e -[UIViewController view] + 27 
    18 UIKit        0x00000001062cdd17 -[UIWindow addRootViewControllerViewIfPossible] + 122 
    19 UIKit        0x00000001062ce41f -[UIWindow _setHidden:forced:] + 294 
    20 UIKit        0x00000001062e12bf -[UIWindow makeKeyAndVisible] + 42 
    21 UIKit        0x0000000106255015 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4711 
    22 UIKit        0x000000010625a245 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1720 
    23 UIKit        0x0000000106615c6c __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 924 
    24 UIKit        0x00000001069e33ef +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 153 
    25 UIKit        0x0000000106615865 -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 249 
    26 UIKit        0x00000001066160c3 -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 668 
    27 UIKit        0x0000000106f73c11 __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 262 
    28 UIKit        0x0000000106f73aca -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 444 
    29 UIKit        0x0000000106c61b9c __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 420 
    30 UIKit        0x0000000106e5cc3e _performActionsWithDelayForTransitionContext + 100 
    31 UIKit        0x0000000106c61998 -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 231 
    32 UIKit        0x00000001069e2a4c -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 392 
    33 UIKit        0x0000000106258ac6 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 523 
    34 UIKit        0x0000000106821523 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 369 
    35 FrontBoardServices     0x000000010b539158 -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 338 
    36 FrontBoardServices     0x000000010b541c4d __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 235 
    37 libdispatch.dylib     0x00000001096b643c _dispatch_client_callout + 8 
    38 libdispatch.dylib     0x00000001096bbaf4 _dispatch_block_invoke_direct + 592 
    39 FrontBoardServices     0x000000010b56d672 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24 
    40 FrontBoardServices     0x000000010b56d328 -[FBSSerialQueue _performNext] + 464 
    41 FrontBoardServices     0x000000010b56d897 -[FBSSerialQueue _performNextFromRunLoopSource] + 45 
    42 CoreFoundation      0x00000001056732b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    43 CoreFoundation      0x0000000105712d31 __CFRunLoopDoSource0 + 81 
    44 CoreFoundation      0x0000000105657c19 __CFRunLoopDoSources0 + 185 
    45 CoreFoundation      0x00000001056571ff __CFRunLoopRun + 1279 
    46 CoreFoundation      0x0000000105656a89 CFRunLoopRunSpecific + 409 
    47 GraphicsServices     0x000000010be609c6 GSEventRunModal + 62 
    48 UIKit        0x000000010625bd30 UIApplicationMain + 159 
    49 XYZZMap        0x00000001047274bf main + 111 
    50 libdyld.dylib      0x0000000109732d81 start + 1 
    51 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

Cảm ơn!

Trả lời

14

NSInvalidUnarchiveOperationException khi tải ngòi/bảng phân cảnh có nghĩa là có một đối tượng trong nib/bảng phân cảnh mà thời gian chạy không hiểu. Điều này là do khung công tác định nghĩa loại đối tượng đó bị thiếu.

Vì vậy, trong trường hợp này, bạn cần liên kết mục tiêu ứng dụng của bạn với khung WebKit để ứng dụng hiểu WKWebView là gì khi được giải mã từ bảng phân cảnh.

Dưới đây là một ảnh chụp màn hình cho thấy giai đoạn xây dựng các mục tiêu ứng dụng của khi điều này được cấu hình đúng:

enter image description here

+0

hi, tôi cũng phải đối mặt với cùng một loại lỗi, cũng đã thêm khung webkit. bất kỳ ý tưởng tại sao nó xảy ra? – Matrix

0

Chọn Target -> General -> khuôn khổ và các thư viện liên kết -> click vào biểu tượng dấu + bên dưới -> Tìm kiếm cho webKit.Framwork -> thêm.

Các vấn đề liên quan