Objective-C valueforKey

时间:2010-12-26 00:25:01

标签: objective-c nsdictionary

我正在使用NSDictionary存储设置值,我正在尝试将它们分配给double。但是我不知道该怎么做,valueforkey返回一个指针id。我尝试使用'*'获取实际值,但这不起作用。

这是代码

tempBrain.operand = [variables valueForKey:[(NSString*)obj  stringByReplacingOccurencesOfString:VARIABLE_PREFIX  withString:@""]];

tempBrain.operand是double变量的setter方法。变量是我的NSDictionary。

3 个答案:

答案 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消息。