2012-10-10 78 views
1

一個數一個人能解釋這個代碼退格在計算器應用程序

- (IBAction)backspacePressed { 
    self.display.text =[self.display.text substringToIndex: 
        [self.display.text length] - 1]; 

    if ([self.display.text isEqualToString:@""] 
     || [self.display.text isEqualToString:@"-"]) { 

     self.display.text = @"0"; 
     self.userIsInTheMiddleOfEnteringNumber = NO; 
    } 
} 

我沒有得到什麼,2號線的目標C的意思。 ||另外,我沒有得到substringToIndex的含義。程序員如何知道在我看到的substringFromIndex等文檔中的所有不同方法中使用substringToIndex。有這麼多。這是說索引中的字符串被計數,-1意味着它刪除了一個字符串?蘋果文檔中的含義如何與刪除角色有關?

+0

-1在這裏用來減一self.display.text的長度,然後將結果(一個簡單的整數)被用作參數傳遞給函數substringToIndex。如果你不明白這一點,你應該轉而研究更多基本的編程資料,然後再繼續擔心NSString的工作原理。 – Merk

回答

1

註釋...

- (IBAction)backspacePressed 
{ 
    // This is setting the contents of self.display (a UITextField I expect) to 
    // its former string, less the last character. It has a bug, in that what 
    // happens if the field is empty and length == 0? I don't think substringToIndex 
    // will like being passed -1... 
    self.display.text =[self.display.text substringToIndex: 
        [self.display.text length] - 1]; 

    // This tests if the (now modified) text is empty (better is to use the length 
    // method) or just contains "-", and if so sets the text to "0", and sets some 
    // other instance variable, the meaning of which is unknown without further code. 
    if ([self.display.text isEqualToString:@""] 
     || [self.display.text isEqualToString:@"-"]) { 

     self.display.text = @"0"; 
     self.userIsInTheMiddleOfEnteringNumber = NO; 
    } 
} 
0

||是一個OR操作符。至少有一個陳述必須是真實的。

看看蘋果的文檔,以substringToIndex:方法

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html

這是東西,你可以用谷歌搜索很容易找到。用的代碼的解釋提供

+0

感謝您回答我的問題trojanfoe,至於NSAddict,我知道這可以很容易地查找,我已經看過文檔之前,我問了一個關於在這個網站有效的docuemntation的東西的問題。 – user1295568