我有一个使用应用程序委托的类,特别是它有一个 NSUserDefaults 属性,该属性正在从我的类中更新。
在我的身份验证类实现文件中,我有:
+ (BOOL) checkUserDefaults {
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
if([appDelegate.session objectForKey:@"UserID"] != nil) {
return TRUE;
} else {
return FALSE;
}
}
+ (void) syncUserDefaults : (NSString *) UserID {
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
[appDelegate.session setObject:UserID forKey:@"UserID"];
[appDelegate.session synchronize];
}
我将如何存储这行代码:
AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
作为一个全局的(对这个类),所以我可以写例如[app.session setObject...]?
我可以做一个功能:
+ (AppDelegate *) app
{
return (AppDelegate *) [[UIApplication sharedApplication] delegate];
}
并且做[[self app].session setObject...]
,但是说如果我多次引用“app”函数,那将多次实例化 AppDelegate,不是吗?