unarchiveObject(with :)已弃用

时间:2018-11-15 18:15:32

标签: swift uilabel nskeyedunarchiver

作为在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:,但似乎无法正常工作。

如果能改善它,我将非常感谢!

最好

克里斯

0 个答案:

没有答案