アプリデリゲートを利用するクラスがあります。具体的には、クラスから更新されている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を何度もインスタンス化することになりますね。