Foundation Framework 基本数据封装 NSNumber、NSValue、NSData

来源:互联网 发布:腾讯来电软件怎么回事 编辑:程序博客网 时间:2024/05/01 14:56

NSNumber、NSValue、NSData用于将C语言基本数据类型封装成类对象,从而可以通过 NSArray、NSDictionary 来存取。


NSNumber 用于封装基本数值类型,创建NSNumber的两种方法:

NSNumber *number;number = [NSNumber numberWithChar:'X']; // 字符型number = [NSNumber numberWithInt:12];   // 整数number = [NSNumber numberWithFloat:12.234];   // 浮点数number = [NSNumber numberWithBool:YES];   // 布尔值number = @'X'; // 字符型number = @12;  // 整数number = @12ul;   // 无符号整数number = @12ll;   // long longnumber = @123.45f;  // 浮点数number = @123.45;   // 双精度浮点数number = @YES;      // 布尔型number = @(2+3);    // @(表达式),其中表达式可以是数字、枚举和一切返回基本数据类型的表达式


将数据从 NSNumber 转换回 基本数据类型

char c = [number charValue];int n = [number intValue];float f = [number floatValue];double d = [number doubleValue];bool b = [number boolValue];NSString *s = [number stringValue];


NSValue 用于封装更复杂的C语言数据结构,及自定义数据结构

封装    NSValue *value = [NSValue valueWithBytes:&t1 objCType:@encode(Tire)];解封    [value getValue: &t1];

对于NSPoint、NSRect、NSSize等数据结构的快捷封装方式,以NSPoint为例:

NSPoint aPoint = {10,20};NSValue *value = [NSValue valueWithPoint: aPoint];NSPoint anotherPoint = [value pointValue];


NSData 二进制包


对nil的封装

当在NSArray、NSDictionary中存储nil时,可以用[NSNull null]代替




0 0
原创粉丝点击