我正在使用NSDictionary存储设置值,我正在尝试将它们分配给double。但是我不知道该怎么做,valueforkey返回一个指针id。我尝试使用'*'获取实际值,但这不起作用。
这是代码
tempBrain.operand = [variables valueForKey:[(NSString*)obj stringByReplacingOccurencesOfString:VARIABLE_PREFIX withString:@""]];
tempBrain.operand是double变量的setter方法。变量是我的NSDictionary。
答案 0 :(得分:6)
假设存储的值为NSNumber
,您可以使用doubleValue
,如下所示:
tempBrain.operand = [[variables objectForKey:[(NSString*)obj stringByReplacingOccurencesOfString:VARIABLE_PREFIX withString:@""]] doubleValue];
另请注意,我已将valueForKey
更改为objectForKey
,这是用于从NSDictionary
获取对象的正确方法。
答案 1 :(得分:1)
NSDictionary只能包含NSObject子类的对象。
尝试这样做:
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithCapacity:10];
// Add object
[dic setObject:[NSNumber numberWithDouble:3.0] forKey:@"Third"];
// Read object
double val = [[dic objectForKey:@"Third"] doubleValue];
答案 2 :(得分:0)
我现在得到它,它返回一个对象,所以我应该发送doubleValue消息。