使用NSKeyedArchiver复制UIView会引发NSInvalidUnarchiveOperationException

Yad*_*dar 8 iphone xcode uiview nskeyedarchiver ios

用这个来复制 UIView

UIView copyOfView = 
[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:originalView]]
Run Code Online (Sandbox Code Playgroud)

这会引发以下错误:

NSInvalidUnarchiveOperationException

[NSKeyedUnarchiver decodeBoolForKey]: value for key (UIHighlighted) is not a boolean

McD*_*_11 3

如果我们使用Archive/Unarchivewith UIImageView,我会遇到错误,尽管我修复了该突出显示问题。

let NewView = whichView.snapshotView(afterScreenUpdates: true)!
Run Code Online (Sandbox Code Playgroud)

上面的行将为您提供最佳解决方案。