首页 > 解决方案 > unarchiveObject(with:) 已弃用

问题描述

作为在 UILabel 中绘制文本外部笔划的扩展的一部分,我提出了一个解决方案,其中包括:

  1. 复制没有笔划的原始 UILabel
  2. 在原始标签上应用外部笔划

它工作正常。

但是,我对创建 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:,但我似乎无法使其工作。

我会非常感谢任何可以改进它的提示!

最好的,

克里斯

标签: swiftuilabelnskeyedunarchiver

解决方案


推荐阅读