解析数据过程中经常会遇见各种数据类型转换的问题,整理一下分享给大家。
NSString:字符串类
NSString *newString = @"123"
// 1)字符串类型 转化为 基本数据类型
NSInteger _intValue = [newString intValue];
NSLog(@"%ld", _intValue);
CGFloat _floatValue = [newString floatValue];
NSLog(@"%.2f", _floatValue);
// 2)基本数据类型 转化为 字符串类型
NSString *intString = [NSString stringWithFormat:@"%d", _intValue];
NSLog(@"%@", intString);
NSString *floatString = [NSString stringWithFormat:@"%f", _floatValue];
NSLog(@"%@", floatString);
NSNumber:数值类
// 完成基本数据类型和数值类型的转换
// 1)基本数据类型 转化为 数值对象
NSNumber *intNumber = [NSNumber numberWithInteger:5];
NSLog(@"%@", intNumber);
NSNumber *charNumber = [NSNumber numberWithChar:'a'];
NSLog(@"%@", charNumber);
NSNumber *floatNumber = [NSNumber numberWithFloat:12.15];
NSLog(@"%@", floatNumber);
// 2)数值对象 转化为 基本数据类型
NSInteger _intValue = [intNumber integerValue];
NSLog(@"%ld", _intValue);
CGFloat _floatValue = [floatNumber floatValue];
NSLog(@"%.2f", _floatValue);
char _charValue = [charNumber charValue];
NSLog(@"%c", _charValue);
// 3)数值对象 转化为 字符串对象
// 假设现有一数值类型的变量A,要转换成字符串类型的B
NSNumberFormatter* numberFormatter = [[NSNumberFormatteralloc] init];
B = [numberFormatter stringFromNumber:A];
NSValue:结构体对象类
// 结构体变量 转化为 NSValue对象
NSValue *point = [NSValue valueWithPoint:NSMakePoint(10, 20)];
NSLog(@"%@", point);
NSValue *size = [NSValue valueWithSize:NSMakeSize(320, 480)];
NSLog(@"%@", size);
NSValue *rect = [NSNumber valueWithRect:NSMakeRect(0, 0, 375, 667)];
NSLog(@"%@", rect);
// NSValue对象 转化为 结构体变量
NSPoint _pointVale = [point pointValue];
NSLog(@"%@", NSStringFromPoint(_pointVale));
NSSize _sizeValue = [size sizeValue];
NSLog(@"%@", NSStringFromSize(_sizeValue));
NSRect _rectValue = [rect rectValue];
NSLog(@"%@", NSStringFromRect(_rectValue));
// Format:万能公式标志
NSMutableString *string2 = [NSMutableString stringWithFormat:@"这是一个神奇的万能公式,相当实用"];
NSInteger number = 12345;
[string appendFormat:@"%ld", number];
NSLog(@"%@", string);