最近我正在学习NSUserDefaults,然后做了如下演示:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *activity_array = [NSMutableArray array];
NSMutableArray *movie_array = [NSMutableArray array];
[defaults setObject:activity_array forKey:@"activity"];
[defaults setObject:movie_array forKey:@"movie"];
[defaults synchronize];
Run Code Online (Sandbox Code Playgroud)
然后我尝试编写以下内容,我将在这篇文章的持续时间内调用"code2":
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSMutableArray *array = [userDefault objectForKey:@"activity"];
[array addObject:@"123"];
Run Code Online (Sandbox Code Playgroud)
演示仍然有效.
但是当我用以下代码替换"code2"时,演示崩溃了:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSMutableArray *array = [userDefault objectForKey:@"movie"];
[array addObject:@"123"];
Run Code Online (Sandbox Code Playgroud)
如您所见,差异是关键.
为什么会崩溃?