Objective-C valueforKey
我正在使用 NSDictionary 来存储设置值,并尝试将它们分配给双精度值。但是我不知道该怎么做,valueforkey 返回一个 id,它是一个指针。我尝试使用“*”获取实际值,但这不起作用。
这是代码
tempBrain.operand = [variables valueForKey:[(NSString*)obj stringByReplacingOccurencesOfString:VARIABLE_PREFIX withString:@""]];
tempBrain.operand 是双变量的 setter 方法。变量是我的 NSDictionary。
I am using an NSDictionary to store a set values and I am trying to assign them to a double. However I am not sure what to do, valueforkey returns an id which is a pointer. I have tried using the '*' get the actual value but that does not work.
This is the code
tempBrain.operand = [variables valueForKey:[(NSString*)obj stringByReplacingOccurencesOfString:VARIABLE_PREFIX withString:@""]];
tempBrain.operand is a setter method for a double variable. Variables is my NSDictionary.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
假设存储的值是
NSNumber
,您可以像这样使用doubleValue
:另请注意,我已将
valueForKey
更改为objectForKey
,这是从 NSDictionary 获取对象的正确方法。Assuming the value stored is an
NSNumber
you can usedoubleValue
like this:Note also I have changed
valueForKey
toobjectForKey
, which is the correct method to use to get an object from anNSDictionary
.NSDictionary 只能包含 NSObject 子类的对象。
尝试这样做:
NSDictionary can contain only objects of NSObject subclasses.
Try do this:
我现在明白了,它返回一个对象,所以我应该向它发送 doubleValue 消息。
I get it now, it returns an object so I should send the doubleValue message to it.