- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
使用 ObjectiveC,我正在开发一个针对 iOS 11 的 SingleView 应用程序,该应用程序具有一个 View Controller / View 。在 View 顶部的 Main.storyboard 中,我放置了一个 WebKit View (WKWebView)。
我在模拟器和运行 iOS 11.0.1 的 iPhone 6 上都看到了崩溃:
由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“无法实例化名为 WKWebView 的类”
我还需要其他什么才能让它工作吗?从 Storyboard 唤醒后,它似乎无法实例化 WKWebView。
其他细节:
崩溃堆栈:
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
谢谢!
最佳答案
加载 nib/storyboard 时出现 NSInvalidUnarchiveOperationException 意味着 nib/storyboard 中有一个运行时不理解的对象。这是因为缺少定义这种对象的框架。
因此,在这种情况下,您需要将应用目标链接到 WebKit 框架,以便应用在从 Storyboard 解码时了解 WKWebView 是什么。
这是一个屏幕截图,显示了正确配置后应用目标的构建阶段:
关于由于 NSInvalidUnarchiveOperationException 导致 iOS11 WKWebview 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47142434/
我遇到了死胡同。我只是想不出在用户关闭应用程序后恢复 WKWebView 的方法。当他重新打开它时,他访问过的所有网页都必须在那里。 有什么建议吗? 最佳答案 All the web pages he
有没有办法让 WKWebView 加载完整的 URL对于每个请求? webView:didFinishNavigation: 仅适用于 mainFrame导航并且不提供 URL 请求参数。 我如何获得
我想复制 Facebook 应用程序的行为,当您单击外部链接时,它会在新浏览器中打开(但它不在 Safari 中)。 我目前有一个加载我的网站的 WKWebView。我可以在点击事件中捕获用户并打开它
我正在尝试将所有加载的数据从一个 WKWebView 复制到一个新的 WKWebView 以便在新的 webView 加载时加载所有内容提出了。关于如何执行此操作或对此的最佳方法有何建议? 最佳答案
WKWebView 允许您通过 Safari 打开外部链接(与基本 url 不同的链接)。 但是,有时您想打开 WKWebView 本身内的所有链接. 例如,假设您有一个基本网址 "https://t
我已经发布了我使用的委托(delegate)方法,如果没有按钮操作事件,我如何使用 javascript 添加该事件。我如何在我的 View Controller 中使用功能主义者。 func web
我正在制作一个应用程序,用户可以在其中单击一个按钮以禁用所有 JavaScript 在下一个页面加载时(而不是重新启动应用程序才能生效)。我尝试了以下代码,但首选项没有保存。 JavaScript 在
我知道我们可以初始化一个 UIWebView 或 WKWebView 然后注入(inject) JavaScript 来获取 navigator.userAgent 的值,但是这需要初始化UIWebV
目标:网站加载完成后对WKWebView进行截图 采用的方法: 在 UIViewController 中定义了一个 WKWebView 变量 创建了一个名为 screen capture() 的扩展方
服务人员在 WKWebView 中可用在 iOS 11.3 测试版中,但似乎在 iOS 11.3 的最终 GM 版本中不可用。 有谁知道如何在 WKWebView 中重新启用 Service Work
我有 44 个 UIButtons,每个按钮都应该连接到带有本地 html 的 wkwebview 的 vc。 有没有办法在一个 vc 中实现所有 44 个按钮? 这是 wkwebview 示例 vc
我正在尝试在 App WebView 中实现“真正的”全屏,这意味着无论如何我都希望网页内容完全显示在屏幕下方。 这是我面临的当前情况,当将 WebView 构建到 superviews 边界时: 红
我正在尝试使用带有单个按钮的简单 WKWebView,单击该按钮后应通过 JavaScript 回调到 Swift。但是,我在 Xcode 控制台中看到以下日志,并且 View 加载了空的 WKWeb
我正在尝试使用带有单个按钮的简单 WKWebView,单击该按钮后应通过 JavaScript 回调到 Swift。但是,我在 Xcode 控制台中看到以下日志,并且 View 加载了空的 WKWeb
我正在使用一个 MacOS 应用程序,它需要使用 WKUserScript 功能将消息从网页发送回 MacOS 应用程序。我正在处理文章 https://medium.com/capital-one-
对于UIWebView,我们可以通过以下方式获取内容高度: [webView stringByEvaluatingJavaScriptFromString:@"document.body.offset
优化背景 众所周知,H5 的部分优势(开发快,迭代快,热更新)是很明显的,公司客户端的部分业务都是由 H5 来实现的,网络好的情况下体验也是很不错的 但是其实 H5 的体验是比原生
由于Xcode8发布之后,编译器开始不支持iOS 7了,这样我们的app也改为最低支持iOS 8.0,既然需要与web交互,那自然也就选择使用了 iOS 8.0之后 才推出的新控件 WKWebVie
下图中的这个“up up up up”是使用wkwebview加载的html字符串 webView?.loadHTMLString((currentLock?.text)!, baseURL: nil
我的应用程序有 1 个 ViewController,它加载一个使用 Auth0 处理登录的网络应用程序 url。在 iOS 13.3 中,webView 已停止在登录后加载其他页面。 但是,当我尝试
我是一名优秀的程序员,十分优秀!