2012-07-30 70 views
0

Objective-C這裏的新手,在iOS5的編程計算器上工作。初始化和訪問NSDictionary的內容

一切正常,與普通的舊數字:

- (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在倒數第二行總是出現「x,(null)」。我錯過了什麼,我的操作數正在消失?

+0

這個問題不是關於操作數或計算器,它是關於初始化一個'NSDictionary'並訪問它的內容。你應該這樣稱呼它。 – bdares 2012-07-30 00:51:42

+0

@bdares - 其實,問題是關於不知道這個問題是關於什麼的。 – 2012-07-30 00:53:34

+0

@ bdares - 完成。對於那個很抱歉! – 2012-07-30 01:06:14

回答

3

沒有==運算符爲對象定義(它會比較指針值)。

使用isEqual:方法。

+0

工作正常!非常感謝。現在到下一個錯誤.... – 2012-07-30 01:08:03