gpt4 book ai didi

iphone - 在应用程序委托(delegate)中保存数据

转载 作者:行者123 更新时间:2023-11-28 19:08:57 24 4
gpt4 key购买 nike

我有几个数组希望在应用程序终止时保存。我在应用程序委托(delegate)中使用 NSUserDefaults 实现了这一点。任何人都可以看看我的代码,看看有什么问题吗?它根本不起作用。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
workouts = [NSMutableArray arrayWithObjects:nil];
menu = [NSMutableArray arrayWithObjects:@"Home",nil];
workoutNames = [NSMutableArray arrayWithObjects:nil];
routinesMade = [NSMutableArray arrayWithObjects:nil];
test = [NSMutableArray arrayWithObjects:nil];

defaults = [NSUserDefaults standardUserDefaults];
self.workouts = [defaults objectForKey:@"workouts"];
self.menu = [defaults objectForKey:@"menu"];
self.workoutNames = [defaults objectForKey:@"workoutNames"];
self.routinesMade = [defaults objectForKey:@"routinesMade"];


return YES;
}


- (void)applicationWillTerminate:(UIApplication *)application
{

defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:workouts forKey:@"workouts"];
[defaults setObject:menu forKey:@"menu"];
[defaults setObject:workoutNames forKey:@"workoutNames"];
[defaults setObject:routinesMade forKey:@"routinesMade"];
[defaults synchronize];

}

顺便说一句,我在头文件中声明了默认值。多谢你们!

最佳答案

我想我知道问题出在哪里了。您的代码位于 applicationWillTerminate: 方法中。除非您明确设置您的应用程序不在后台运行(通过设置“应用程序不在后台运行”键),否则几乎可以肯定永远不会调用此方法,因为当它被系统终止时,它会已经暂停。

在这种情况下,请考虑在 applicationDidEnterBackground: 方法中保存您需要的信息。

希望这对您有所帮助!

关于iphone - 在应用程序委托(delegate)中保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17537747/

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