我试图了解如何在应用程序启动后立即执行操作,一直在撞墙直到墙上。
基本上我想从我的网站下载一个plist,如果用户打开一个确定他是否想在启动时下载新内容的开关。
重点是:
现在,如果打开类“B”的开关,我不知道如何告诉AppDelegate运行类“A”的方法。显然我需要使用NSUserDefaults
,但之后我很失落。
有人能让事情更清楚吗?或者,有更舒适的解决方法吗?
答案 0 :(得分:2)
是的,你可以使用NSUserDefaults
来做到这一点 你班上的。
-(void)swithChanged
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//check if !null
if(![[defaults objectForKey:@"shouldDownload"]isKindOfClass:[NSNull class]]){
if([(NSNumber*)[defaults objectForKey:@"shouldDownload"]boolValue])
{
[defaults setObject:[NSNumber numberWithInt:0] forKey:@"shouldDownload"];
[defaults synchronize];
}else{
[defaults setObject:[NSNumber numberWithInt:1] forKey:@"shouldDownload"];
[defaults synchronize];
}
}else{
//set your NSUserDefault here for the first time
}
}
你的AppDelegate中的
- (void)applicationDidBecomeActive:(UIApplication *)application{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//check if !null
if(![[defaults objectForKey:@"shouldDownload"]isKindOfClass:[NSNull class]]){
if([(NSNumber*)[defaults objectForKey:@"shouldDownload"]boolValue])
{
//you can write the downloadData method in this appDelegate,
//[self downloadData]
//OR
AClass *aClass = [AClass alloc]init];
[aClass downloadData];
}else{
//do not download
}
}else{
//the default behaviour of app, download or not?
}
}
答案 1 :(得分:1)