swift - unarchiveObject(with:) 已弃用
问题描述
作为在 UILabel 中绘制文本外部笔划的扩展的一部分,我提出了一个解决方案,其中包括:
- 复制没有笔划的原始 UILabel
- 在原始标签上应用外部笔划
它工作正常。
但是,我对创建 UILabel 副本的代码不满意,特别是因为其中一部分没有恢复任何潜在的错误,而其余部分则使用了已弃用的代码。
extension UILabel {
func createCopy() -> UILabel {
let archivedLabel = try? NSKeyedArchiver.archivedData(withRootObject: self, requiringSecureCoding: false)
return NSKeyedUnarchiver.unarchiveObject(with: archivedLabel!) as! UILabel
}
}
我没有恢复潜在的错误NSKeyedArchiver
并且
NSKeyedUnarchiver.UnarchiObject(with:)
已被弃用。我应该使用unarchivedObjectOfClass:fromData:error:
,但我似乎无法使其工作。
我会非常感谢任何可以改进它的提示!
最好的,
克里斯
解决方案
推荐阅读
- c++ - c++调用函数返回的抽象类的方法
- sql - 使用不同的多个 WHERE 条件从数据库中选择行
- sql - 我需要从表中选择所有记录,而不是通过子查询选择的记录,但它再次返回所有记录
- java - 为什么我们在 for 循环中做了 { i < s.length() - k } 请解释一下逻辑。给定字符串 s 和 int k
- javascript - 如何从动态创建的按钮传递参数?
- python - GridSearchCV 和 ValueError:估计器管道的无效参数 alpha
- java - Webdriver - 页面被冻结,点击事件后某些网络调用未正确触发。(一般问题)
- python-3.x - 如何使用 Python 3 从 S3 获得的 OpenCV 读取图像?
- java - 使用 selenium web 驱动程序根据 excel 中的数据选择多个下拉选项
- python - 如何使用单个 API 调用扫描 HappyBase 中的行集?