在启动时重新加载内容

时间:2012-09-03 12:05:26

标签: objective-c ios xcode

我试图了解如何在应用程序启动后立即执行操作,一直在撞墙直到墙上。

基本上我想从我的网站下载一个plist,如果用户打开一个确定他是否想在启动时下载新内容的开关。

重点是:

  • “A”类具有重新加载内容的方法;
  • “B”类有一个开关,如果打开它,告诉代表在应用程序启动后立即执行重载内容方法

现在,如果打开类“B”的开关,我不知道如何告诉AppDelegate运行类“A”的方法。显然我需要使用NSUserDefaults,但之后我很失落。

有人能让事情更清楚吗?或者,有更舒适的解决方法吗?

2 个答案:

答案 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)