Как сохранить UIView в CoreData или UserDefaults - PullRequest
0 голосов
/ 27 мая 2018

В моем случае у меня есть 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 голосов
/ 27 мая 2018

Что касается UserDefaults, вы не можете хранить пользовательские объекты в UserDefaults, только NSData, NSString, NSNumber, NSDate, NSArray или NSDictionary (или аналогичных типах).в Swift), см. документацию.

Не хранить класс пользовательского интерфейса - просто храните параметры, которые вы хотите восстановить в последнее время.

...