1
這是一個計算器。我有一個顯示位置,可以輸入數字和變量(x,y等)。當我按下回車按鈕時,它會將顯示內容顯示給所有操作數的數組。將NSString和NSNumber放入數組的方法
正如顯示可以是NSString(變量)或NSNumber(數字)我認爲使用「id」作爲方法參數。
- (IBAction)enterPressed
{
[self.brain pushOperand:self.display.text];
}
/////////////////////
- (void) pushOperand:(id)operand
{
////// So if operand is digit I need to transform it into NSNumber.
NSNumber *digitToStack = [NSNumber numberWithDouble:operand];
/////// Here is problem - "Sending '___strong id' to parameter of incompatible type 'double'
NSNumber *digitToStack = [operand doubleValue];
//////// If i do like this, i have warning - "Initializing 'NSNumber *__strong' with an expression of incompatible type 'double'
[self.programStack addObject:operand];
}
我不明白這個警告是什麼。
所以問題是我可以以某種方式把數組NSNumber和NSString使用ID方法,或者我應該怎麼做呢?
我可以從'id'方法轉換參數到NSNumber嗎?
只是一個小問題,現在操作數總是一個NSString,你可以刪除該類型。 – Till 2012-01-14 12:53:55
是的,我看到@Till ..並且謝謝。工作正在進行中。我可能會很快做一兩個修改。 – 2012-01-14 12:54:45
太棒了!謝謝!! 爲什麼我需要(NSString *) double doubleValueFromOperand = [(NSString *)operand doubleValue]; – 2012-01-14 13:02:10