2011-08-21 53 views
9

我试图检测一个NSNumber是否介于0和255之间。每当我运行应用程序,我都会收到警报视图,即我的编号大于255,即使它不是。我没有这个问题,0检测是否NSNumber介于0和255之间

if (redValue < 0) { 

    NSLog(@"Red value is less than 0"); 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your number must be greater than 0." message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

    [alert show]; 
    [alert release]; 


} else if (redValue > 255) { 

    NSLog(@"Red value is greater than 255"); 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your number must be less than 255." message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

    [alert show]; 
    [alert release]; 

} 

此外,我收到关于“否则,如果(redValue> 255)”行这样的警告:尖和整数之间(有序的比较“的NSNumber *”和“INT '),所以我假设我必须将此NSNumber转换为整数?

+0

看到这个问题的更多有关的NSNumber转换成int:http://stackoverflow.com/questions/3555906/how-to-convert-nsnumber-to-int-in- objective-c –

回答

27

应该是:

if([redValue intValue] < 0) { 
... 

if([redValue intValue] > 255) { 
... 

假设它是一个int。如果在“访问数值”下找不到NSNumber Class Reference,并用适当的东西替换intValue

+0

完美,谢谢! –

3

使用的intValue获得数量为int:

[redValue intValue] 
1
if (redValue.intValue >255) 
{ 
    // it's greater than 255 
} 
1

试试这个

[redValue intValue] > 255 
相关问题