我有一個使用應用程序委託的類,特別是它有一個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