/*===========================NSNumber数值对象=========================*/ // 将基本数据类型保存为NSNumber 对象类型 NSNumber *intNum = [NSNumber numberWithInt:10]; NSLog(@"num = %@",intNum); NSNumber *floatNum = [NSNumber numberWithFloat:10.32]; NSLog(@"floatNum = %@",floatNum); NSNumber *doubleNum = [NSNumber numberWithDouble:345.567890]; NSLog(@"doubleNum = %@",doubleNum); NSNumber *boolNum = [NSNumber numberWithBool:YES]; NSLog(@"booleNum = %@",boolNum); // 将NSNumber 对象类型还原成基本数据类型 int value1 = [intNum intValue]; float value2 = [floatNum floatValue]; double value3 = [doubleNum doubleValue]; BOOL value4 = [boolNum boolValue]; // 简介写法 NSNumber *num = @1; NSNumber *num1 = @3.14; NSNumber *num2 = @343.33434344; NSNumber *num3 = @YES; NSLog(@"num = %@",num); /*===========================NSValue对象类型=========================*/ /* NSNumber 用来保存基本数据类型,但是像结构体这样的数据类型就保存不了了, 所以得使用 NSValue 来保存结构体这样的数据类型 OC 常用的结构体类型: NSRange(表示范围) 、NSPoint(表示坐标位置)、NSSize(表示尺寸)、 NSRect(表示一个位置和尺寸) */ // 方式一: // 把结构体保存为NSValue 对象类型 CGPoint point = { 20,30}; NSValue *value = [NSValue value:&point withObjCType:@encode(CGPoint)]; // NSArray *array = @[value]; NSLog(@"value = %@",value); // getValue 还原结构体 CGPoint point1; [value getValue:&point1]; NSLog(@"point.x = %.2f",point1.x);
本文GitHub地址