如何在CoreData或UserDefaults中存储UIView

时间:2018-05-27 17:12:55

标签: swift core-data uiview uilabel userdefaults

在我的情况下,我有一个ViewController,客户端必须创建UILabel,我想存储UILabel,当我使用UserDefaults时,它返回nil

extension UserDefaults {

      func setLabel(label:[UILabel],forKey key: String){
        let viewData: NSData?
        viewData = NSKeyedArchiver.archivedData(withRootObject: label) as NSData?

        set(viewData, forKey: key)
    }

    func labelForKey(key: String) -> [UILabel]? {
        var view: [UILabel]?
        if let viewData = data(forKey: key) {
            view = NSKeyedUnarchiver.unarchiveObject(with: viewData) as? [UILabel]
        }
        return view
    }  
}

1 个答案:

答案 0 :(得分:0)

至于UserDefaults,您无法在UserDefaultsNSDataNSStringNSNumberNSDate中存储自定义对象, NSArrayNSDictionary(或Swift中的类似类型),请参阅文档。

不存储UI类 - 只存储您最近要恢复的参数。