gpt4 book ai didi

objective-c - 在启动时重新加载内容

转载 作者:行者123 更新时间:2023-12-01 19:17:26 26 4
gpt4 key购买 nike

几天来,我一直在努力尝试了解如何在应用程序启动后立即执行操作。

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

重点是:

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

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

    任何人都可以让事情更清楚吗?或者,是否有更舒适的解决方法?

    最佳答案

    是的,您可以使用 NSUserDefaults 执行此操作

    在你的类 b。

    -(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?
    }

    }

    关于objective-c - 在启动时重新加载内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247559/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com