-1

大家好 :) 我想像这样将双值保存到 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"];

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

感谢您的时间和帮助:)

4

1 回答 1

4

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

您必须以某种方式从字典中提取双精度值:

NSDictionary *dictionary = self.dataList[indexPath.row];
double value = [dictionary[@"latitude"] doubleValue];
[startValues setDouble:value forKey:@"lat"];
于 2013-09-26T10:52:02.180 回答