2011-08-21 14 views
9

के बीच है, तो मैं यह पता लगाने की कोशिश कर रहा हूं कि एनएसएनंबर 0 और 255 के बीच है या नहीं। जब भी मैं ऐप चलाता हूं, मुझे अलर्ट व्यू मिलता है कि मेरा नंबर 255 से अधिक है, भले ही यह न हो। उठाई और पूर्णांक (बीच आदेश दिया तुलना 'NSNumber *' और 'पूर्णांक: मैं 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]; 

} 

साथ ही साथ इस समस्या नहीं है, मैं "else if (redValue> 255)" लाइन पर इस चेतावनी प्राप्त '), तो मुझे लगता है कि मुझे इस NSNumber को एक पूर्णांक में परिवर्तित करना है? मान लिया जाये कि यह एक पूर्णांक है

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

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

:

+0

NSNumber से परिवर्तित int करने के बारे में और अधिक के लिए इस सवाल का देखें: http://stackoverflow.com/questions/3555906/how-to-convert-nsnumber-to-int-in- उद्देश्य-सी –

उत्तर

27

होना चाहिए। यदि यह NSNumber Class Reference पर नहीं है, तो "संख्यात्मक मानों तक पहुंचने" के अंतर्गत देखें और उपयुक्त चीज़ के साथ intValue को प्रतिस्थापित करें।

+0

बिल्कुल सही, धन्यवाद! –

3

उपयोग intValue एक पूर्णांक के रूप में नंबर पाने के लिए:

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