初始化和访问NSDictionary的内容

时间:2012-07-30 00:48:31

标签: objective-c ios5 nsdictionary

Objective-C新手在这里,为iOS5编写计算器。

使用常规旧数字一切正常:

- (void)pushOperand:(double)operand
{
[self.programStack addObject:[NSNumber numberWithDouble:operand]];
}

但是当我创建一个包含变量测试数字的字典时,如下所示:

- (void) pushOperandAsVariable:(NSObject *)variable
{
//Create dictionary
NSArray *objects = [[NSArray alloc] initWithObjects:[NSNumber numberWithDouble:3],[NSNumber numberWithDouble:4.1],[NSNumber numberWithDouble:-6],[NSNumber numberWithDouble:4.5298], nil];
NSArray *keys = [[NSArray alloc] initWithObjects:@"x",@"y",@"z",@"foo", nil];
NSDictionary *variableValues = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];

NSNumber *operand;
//Check variableValues for keys
for (int i=0; i<keys.count; i++)
{
    if ([keys objectAtIndex:i]==variable)
    operand = [variableValues objectForKey:variable];
}
NSLog(@"%@, %@",variable,operand);
[self.stackOfThingsSinceLastClear addObject:operand];

}

倒数第二行的NSLog总是出现&#34; x,(null)&#34;。我错过了什么,我的操作数正在消失?

1 个答案:

答案 0 :(得分:3)

没有为对象定义==运算符(它会比较指针值)。

使用isEqual:方法。