我试图在应用程序关闭时使用userdefaults保存数组,但是当我在app委托中调用方法时,我会收到此错误“调用参数'数据'时缺少参数”
来自单独类的代码:
func saveDataForKey(key: String, data: [Item]){
let arrayData = NSKeyedArchiver.archivedDataWithRootObject(data)
NSUserDefaults.standardUserDefaults().setObject(arrayData, forKey: ArrayKey)
}
来自app delegate的代码:
var ds = DataStore()//this is the separate class
func applicationDidEnterBackground(application: UIApplication) {
ds.saveDataForKey(key: String, data: [Item])//this is where i get the error
}
答案 0 :(得分:0)
请勿使用app delegate。请改用NSNotificationCenter。在您的班级(可能是DataStore
)注册,以收听UIApplicationDidEnterBackgroundNotification
等系统通知。您可以使用选择器或块。例如(选择器)你可以这样做:
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "WRITE A METHOD AS EXPLAINED BELOW",
name: UIApplicationDidEnterBackgroundNotification,
object: nil)
在这种情况下,选择器是一种只能将NSNotification
作为其唯一输入的方法。你可能需要用这种方法包装你的saveDataForKey
。