Numeri Objective-C
Nel linguaggio di programmazione Objective-C, per salvare i tipi di dati di base come int, float, bool in forma di oggetto,
Objective-C fornisce una gamma di metodi per lavorare con NSNumber e quelli importanti sono elencati nella tabella seguente.
| Sr.No. | Metodo e descrizione |
|---|---|
| 1 | + (NSNumber *)numberWithBool:(BOOL)value Crea e restituisce un oggetto NSNumber contenente un dato valore, trattandolo come un BOOL. |
| 2 | + (NSNumber *)numberWithChar:(char)value Crea e restituisce un oggetto NSNumber contenente un determinato valore, trattandolo come un carattere con segno. |
| 3 | + (NSNumber *)numberWithDouble:(double)value Crea e restituisce un oggetto NSNumber contenente un dato valore, trattandolo come un double. |
| 4 | + (NSNumber *)numberWithFloat:(float)value Crea e restituisce un oggetto NSNumber contenente un dato valore, trattandolo come un float. |
| 5 | + (NSNumber *)numberWithInt:(int)value Crea e restituisce un oggetto NSNumber contenente un determinato valore, trattandolo come un int con segno. |
| 6 | + (NSNumber *)numberWithInteger:(NSInteger)value Crea e restituisce un oggetto NSNumber contenente un determinato valore, trattandolo come un NSInteger. |
| 7 | - (BOOL)boolValue Restituisce il valore del ricevitore come BOOL. |
| 8 | - (char)charValue Restituisce il valore del destinatario come un carattere. |
| 9 | - (double)doubleValue Restituisce il valore del destinatario come un doppio. |
| 10 | - (float)floatValue Restituisce il valore del ricevitore come float. |
| 11 | - (NSInteger)integerValue Restituisce il valore del destinatario come NSInteger. |
| 12 | - (int)intValue Restituisce il valore del ricevitore come int. |
| 13 | - (NSString *)stringValue Restituisce il valore del destinatario come una stringa leggibile dall'uomo. |
Ecco un semplice esempio di utilizzo di NSNumber che moltiplica due numeri e restituisce il prodotto.
#import <Foundation/Foundation.h>
@interface SampleClass:NSObject
- (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b;
@end
@implementation SampleClass
- (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b {
float number1 = [a floatValue];
float number2 = [b floatValue];
float product = number1 * number2;
NSNumber *result = [NSNumber numberWithFloat:product];
return result;
}
@end
int main() {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
SampleClass *sampleClass = [[SampleClass alloc]init];
NSNumber *a = [NSNumber numberWithFloat:10.5];
NSNumber *b = [NSNumber numberWithFloat:10.0];
NSNumber *result = [sampleClass multiplyA:a withB:b];
NSString *resultString = [result stringValue];
NSLog(@"The product is %@",resultString);
[pool drain];
return 0;
}
Ora, quando compiliamo ed eseguiamo il programma, otterremo il seguente risultato.
2013-09-14 18:53:40.575 demo[16787] The product is 105