2011-12-02 62 views
0

如何檢查我的UILabel值是否大於0?我只需要做一個if語句。我這樣做是因爲我需要找出數字是1,2,3等,如果是,我需要調用某個動作。如何檢查我的UILabel值是否大於0?

我曾嘗試以下的代碼,但它不工作,而是示出了一個錯誤:

如果([[標籤文本]的intValue]> 0){

}

編輯:我發現另一個代碼,這是挑釁這不工作。上面的代碼現在完全有效。

回答

5
if ([[myLabel text] intValue] > 0) ... 
+0

出現此錯誤:http://pastie.org/2956098 – pixelbitlabs

+0

@pixelbitlabs這不是從這段代碼。在你的代碼中尋找一個你在'UILabel'實例上調用'isEqualToString'的地方; UILabel上沒有這種方法。 – dasblinkenlight

+0

我怎麼才能找出究竟是什麼導致它,因爲我不能看到任何使用isEqualToString,並且是一個UILabel ... – pixelbitlabs

1

如果您確定的UILabel的文本值是數字,你可能只是這樣做:

- (BOOL)valueGreaterThanZero:(UILabel *)label { 
    NSString *text = [label text]; 
    int value; 
    [[NSScanner scannerWithString:text] scanInt:&value]; 
    return (value > 0); 
} 

要小心,雖然,這將與非數字值的碰撞。

更好的版本,錯誤處理......這是假定你要非NUMERICS假值:

- (BOOL)valueGreaterThanZero:(UILabel *)label { 
    NSString *text = [label text]; 
    int value; 
    BOOL gotNumber = [[NSScanner scannerWithString:text] scanInt:&value]; 
    return (gotNumber && value > 0); 
} 

然後,如果語句在使用,按OP,

if ([self valueGreaterThanZero:labelToCheck]) ... 
+0

我怎樣才能調用這個函數? – pixelbitlabs

+0

出現這個錯誤:http://pastie.org/2956098 – pixelbitlabs

+0

你有一個'isEqualToString:(NSString *)'調用,我沒有在我的代碼中提供,修復後再次嘗試我的代碼。另外,我可能會實現這個的方式是子類UILabel並將上面的函數添加到子類。然後(假設'myLabel'是該子類的一個實例),你可以這樣做:if([myLabel valueGreaterThanZero])...'當然,要做到這一點,你需要改變函數簽名來刪除':(UILabel *)標籤'端口離子。所以,最後的簽名是' - (BOOL)valueGreaterThanZero'。 – mbm29414

1
if ([myLabel.text intValue] > 0) { 
    // do staf 
} 
+0

出現此錯誤:http://pastie.org/2956098 – pixelbitlabs

+0

請發佈您的代碼。 – taskinoor

相關問題