【发布时间】:2012-08-05 19:42:53
【问题描述】:
我有一个使用应用程序委托的类,特别是它有一个 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,不是吗?
【问题讨论】:
-
请参阅Global variables for class methods 了解一些想法。
标签: objective-c pointers delegates