大佬教程收集整理的这篇文章主要介绍了ios – 无法将NSUserDefaults中的数据检索到今天的扩展名(Swift),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
自定义任务对象
class Task:NSObject,NSCoding { var name:string var notes:string var date:NSDate var dateUse:Bool var taskCompleted:Bool init(name:string,notes:string,date:NSDate,dateUse:Bool,taskCompleted:Bool){ self.name = name self.notes = notes self.date = date self.dateUse = dateUse self.taskCompleted = taskCompleted } required init(coder decoder: NSCoder){ self.name = decoder.decodeObjectForKey("name") as! String self.notes = decoder.decodeObjectForKey("notes") as! String self.date = decoder.decodeObjectForKey("date") as! NSDate self.dateUse = decoder.decodeObjectForKey("dateUse") as! Bool self.taskCompleted = decoder.decodeObjectForKey("taskCompleted") as! Bool } func encodeWithCoder(coder: NSCoder) { coder.encodeObject(self.name,forKey: "name") coder.encodeObject(self.notes,forKey: "notes") coder.encodeObject(self.date,forKey: "date") coder.encodeObject(self.dateUse,forKey: "dateUse") coder.encodeObject(self.taskCompleted,forKey: "taskCompleted") } }
保存:
let defaults = NSUserDefaults(suitename: "group.com.myGroupName") let NowData = NSKeyedArchiver.archivedDataWithRootObject(NowTasks) defaults!.setObject(NowData,forKey: "NowData")
检索
let NowDataPull = defaults!.objectForKey("NowData") as? NSData if let NowDataPull2 = NowDataPull{ let NowTasks2 = NSKeyedUnarchiver.unarchiveObjectWithData(NowDataPull2) as? [Task] if let NowTasks21 = NowTasks2{ NowTasks = NowTasks21 } }
上述方法适用于从iPhone本身设置和检索数据.但是,尝试通过今日扩展程序检索数据时,此方法不起作用.
当尝试从今天的扩展名的.swift文件中检索时,我收到以下错误:
我知道扩展可以读取数据,因为我打电话时:
if (defaults?.objectForKey("NowData") != nil){ print("there is data") }
我得到了打印的回复..
以上是大佬教程为你收集整理的ios – 无法将NSUserDefaults中的数据检索到今天的扩展名(Swift)全部内容,希望文章能够帮你解决ios – 无法将NSUserDefaults中的数据检索到今天的扩展名(Swift)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。