无法在NSUSerDefault中保存双倍值

时间:2013-09-26 10:47:29

标签: ios objective-c double nsuserdefaults

大家好:)我想将一个双倍值保存到NSUserDefault中:

NSUserDefaults *startValues = [NSUserDefaults standardUserDefaults];

[startValues setDouble:[[self.dataList objectAtIndex:indexPath.row]doubleValue] forKey:@"lat"];

[startValues synchronize];

我从Xcode中没有出现错误或警告,但是当我运行代码时,它会与消息崩溃:

-[__NSCFDictionary doubleValue]: unrecognized selector sent to instance

我还尝试将代码拆分为:

double lat = [[self.dataList objectAtIndex:indexPath.row]doubleValue];

    [startValues setDouble:lat forKey:@"lat"];

但当然,我得到了同样的错误。问题是什么?

感谢您的时间和帮助:)

1 个答案:

答案 0 :(得分:4)

问题是[self.dataList objectAtIndex:indexPath.row]包含字典。 NSDictionary不理解doubleValue消息。

你必须以某种方式从字典中提取double值:

NSDictionary *dictionary = self.dataList[indexPath.row];
double value = [dictionary[@"latitude"] doubleValue];
[startValues setDouble:value forKey:@"lat"];