我有一个使用应用程序委托的类,特别是它有一个NSUserDefaults属性,它正在从我的类中更新。Objective-C创建指向AppDelegate的指针
在我的身份验证类实现文件我有:
+ (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...]
,而是说,如果我引用“应用程序”功能,无数次将被实例化的AppDelegate无数次,不是吗?
请参阅[类方法的全局变量](http://stackoverflow.com/questions/8498754/global-variables-for-class-methods/8498798#8498798)了解一些想法。 – 2012-08-05 19:57:55