2013-09-26 37 views
-1

大家好:)我想一个Double值保存到NSUserDefault这样的:无法保存双重价值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

告诉我们self.dataList数据? – Balu

+0

如果你把这个陈述分解成几个组件,一个到中间变量的行,你将能够更好地看到错误的位置。在这种情况下,'[self.dataList objectAtIndex:indexPath.row]'是一个字典。 – zaph

+0

您正在尝试将NSDictionary对象转换为double, 获取'lat'的值,然后将其转换为double –

回答

4

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

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

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

这是问题,谢谢你:D – Davis