黑马程序员_NSNumber、NSValue、NSNull
来源:互联网 发布:2016中国经济危机知乎 编辑:程序博客网 时间:2024/05/19 20:58
NSNmuber
因为NSArray和NSDictionary只能储存对象,而不能直接储存任何基本类型的数据,如int、float和struct。
Cocoa提供了NSNumber类来封装基本数据类型。
创建方法
+(NSNumber *) numberWithChar: (char) value;
+(NSNumber *) numberWithInt: (Int) value;
+(NSNumber *) numberWithFloat: (float) value;
+(NSNumber *) numberWithBool: (BOOL) value;
也可以使用以下的创建方法
NSNumber *number;
number = @'X';//字符型
number = @12345;//整型
number = @12345ul;//无符号长整形
number = @12345ll;//long long
number = @123.45;//浮点型
number = @YES;//布尔值
添加到字典或数组
NSNumber *number = @42;
[array addObject number];
[dictionary setObject:number forKey:@"Bork"];
提取方法
将一个数据封装到NSNumber中后,可以通过以下的实例方法重新获得它
-(char) charValue;
-(int) intValue;
-(float) floatValue;
-(BOOL) boolValue;
-(NString *) stringvalue;
NSValue
封装
NSnumber其实是NSValue的子类,NSValue可以封装任意值。可以使用NSValue将结构体放入NSArray或NSDictionary中
+(NSValue *) valueWithBytes: (const void *) value objCType: (const char *) type;NSRect rect = NSMakeRect(1,2,30,40);NSValue *value = [NSValue valueWithByte:&rect objCType:@encode(NSRect)];[array addObject:value];
提取
-(void)getValue:(void *)buffer;
可以使用getValue:方法提取数值
value = [array objectAtIndex: 0];[value getValue:&rect]
便捷方法
+ (NSValue *)valueWithPoint:(NSPoint)aPoint;
+ (NSValue *)valueWithSize:(NSSize)Size;
+ (NSValue *)valueWithRect:(NSRect)rect;
- (NSPoint)pointValue;
- (NSSize)sizeValue;
- (NSRect)rectValue;
在NSArray中储存和提取NSRect值:
value = [NSValue valueWithRect:rect];[array addObject:value];...NSRect anotherRect = [value rectValue];
NSNull
因为集合中不能放nil值,但如果想需要储存一个表示“什么都没有”的值。
+ (NSNull *) null;
添加到集合
[contact setObject: [NSNull null] forKey:@"home fax machine"];
访问的方式
id homefax = [contact objectForKey:@"home fax machine"]
if(homefax == [NSNull null])
{
//....确定没有传真机
}
- 黑马程序员_NSNumber、NSValue、NSNull
- 黑马程序员_Foundation框架04_NSNumber、NSValue、NSDate
- 黑马程序员——Objective-C学习之NSNumber\NSValue\NSNull
- 黑马程序员——Foundation学习之NSNumber\NSValue\NSNull\NSFileManager\NSDate\NSData
- 黑马程序员-Foundation-NSValue
- 黑马程序员----NSValue
- 黑马程序员--NSNumber NSValue
- 【黑马程序员】NSvalue的用法
- 黑马程序员--NSValue的使用
- NSNumber,NSValue,NSNull
- NSNumber、NSValue和NSNull
- NSNumber NSValue NSNull NSDate
- NSNUmber,NSValue,NSNull
- 黑马程序员_Foundation_NSSet,NSDictionary,NSValue,NSDate,NSNumber
- 06.黑马程序员-NSNumber、NSValue、NSData
- 黑马程序员--oc:NSString、NSValue、NSNumber、NSDate
- 黑马程序员一NSNumber, NSDate,NSValue
- NSNull nil NULL Nil NSValue
- 陽卦多陰章
- Android之网络下载与图片解码-----网络图片浏览器
- linux 内核分析之list_head
- 关于YUV420转RGB24
- 【HTML】统一file提交样式 input type=file浏览修改,不清空file值,提交表单
- 黑马程序员_NSNumber、NSValue、NSNull
- 03 单链表的实现
- 链表的应用:单元多项式的加法、减法、乘法
- hibernate 从数据库生成实体对象
- 如何设计上十亿的用户表
- NYOJ 483 Nightmare 【广搜】+【无标记】
- hdu1816 + POJ 2723开锁(二分+2sat)
- Android LayoutInflater使用
- 彖者材也章