ios - NSMutableDictionary 和 NSUserDefaults

标签 ios nsuserdefaults nsmutabledictionary

我正在尝试找出正确的数据结构来保存 'date' => 'value' 的键值

我正在尝试使用 NSMutableDictionary,因为每次用户输入值并按下“保存”时它都必须保存。

但是,尝试将 NSLog 字典的值始终为 null。

- (IBAction)saveWeight:(id)sender
{
    NSMutableDictionary *weightLog = [[NSMutableDictionary alloc] init];
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    NSString *date = @"12/12/14"; 

    [weightLog setObject:self.weightInput.text forKey:date];

    NSLog(@"neweight you entered is %@", self.weightInput.text);
    NSLog(@"weightlog is %@", weightLog);

    [userDefaults setObject:weightLog forKey:@"Weightlog"];
    [userDefaults synchronize];
}

日志输出:

diet[35744:70b] neweight you entered is 13
2014-03-01 16:25:58.712 diet[35744:70b] weightlog is {
"12/12" = 13;
}

最佳答案

当然,只有最后一个值被保存,因为在添加新值之前您不会在 weightLog 中加载以前的值!还有一件事,您应该更改每个值的键。

尝试使用这个(日期将包括年+月+日+时+分+秒,所以每秒点击次数不要超过1次;-D):

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

NSMutableDictionary *weightLog = [NSMutableDictionary dictionaryWithDictionary:[userDefaults objectForKey:@"Weightlog"]];


NSString *date = [NSDateFormatter localizedStringFromDate:[NSDate date]
                                                dateStyle:NSDateFormatterShortStyle
                                                timeStyle:NSDateFormatterFullStyle];

[weightLog setObject:self.weightInput.text forKey:date];

NSLog(@"neweight you entered is %@", self.weightInput.text);
NSLog(@"weightlog is %@", weightLog);

[userDefaults setObject:weightLog forKey:@"Weightlog"];
[userDefaults synchronize];

关于ios - NSMutableDictionary 和 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121123/

相关文章:

javascript - 移动设备的屏幕宽度(android和ipod)

ios - plist、数组和字典的元素之间是什么关系?

ios - 我将数组添加到字典中,然后从数组中删除所有对象

ios - swift 将 NSDictionary 分配给全局 NSMUtableDictionary

ios - 如何知道NSURLSessionConfiguration是否是backgroundSessionConfiguration?

ios - UITableView 不显示滚动

ios - 在 NSUserDefaults 中存储 NSMutableDictionary 时应用程序崩溃

ios - 使用 tableView 滑动功能从 NSUserDefaults 中删除项目时出错

ios - 退出应用程序时无法使用 NSUserDefaults 保存整数

ios - 横向自动布局内容大小的 UIScrollview