在我的情况下,我有一个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
}
}
答案 0 :(得分:0)
至于UserDefaults
,您无法在UserDefaults
,NSData
,NSString
,NSNumber
,NSDate
中存储自定义对象, NSArray
或NSDictionary
(或Swift中的类似类型),请参阅文档。
不存储UI类 - 只存储您最近要恢复的参数。