我在使用 NSUserDefaults 的整数时遇到了一个奇怪的问题。在我正在开发的应用程序中,可以删除一些照片。当用户删除它们时,NSUserDefaults 中的一个整数会减少(命名为 StorageUsed)。这是用户删除照片时的代码:
int size = [[json objectForKey:@"size"] intValue];
NSLog(@"photo size: %i",size);
int storageUsed = [[NSUserDefaults standardUserDefaults] integerForKey:@"StorageUsed"];
storageUsed = storageUsed - size;
NSLog(@"storage used: %i",storageUsed);
[[NSUserDefaults standardUserDefaults] setInteger:storageUsed forKey:@"StorageUsed"];
[[NSUserDefaults standardUserDefaults] synchronize];
这是输出:
2012-08-14 12:00:18.285 My Albums[32875:707] photo size: 116769
2012-08-14 12:00:18.293 My Albums[32875:707] storage used: 952516
2012-08-14 12:00:18.514 My Albums[32875:707] photo size: 117333
2012-08-14 12:00:18.516 My Albums[32875:707] storage used: 952516
2012-08-14 12:00:18.729 My Albums[32875:707] photo size: 120303
2012-08-14 12:00:18.731 My Albums[32875:707] storage used: 952516
2012-08-14 12:00:18.991 My Albums[32875:707] photo size: 137845
2012-08-14 12:00:18.993 My Albums[32875:707] storage used: 952516
...
如您所见,使用的存储量没有减少,而大小不为零。
谁能解释为什么会这样?