黑马程序员_NSNumber、NSValue、NSNull
2014-06-15 22:03
225 查看
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
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;//布尔值
[array addObject number];
[dictionary setObject:number forKey:@"Bork"];
-(char) charValue;
-(int) intValue;
-(float) floatValue;
-(BOOL) boolValue;
-(NString *) stringvalue;
封装
NSnumber其实是NSValue的子类,NSValue可以封装任意值。可以使用NSValue将结构体放入NSArray或NSDictionary中
可以使用getValue:方法提取数值
+ (NSValue *)valueWithSize:(NSSize)Size;
+ (NSValue *)valueWithRect:(NSRect)rect;
- (NSPoint)pointValue;
- (NSSize)sizeValue;
- (NSRect)rectValue;
在NSArray中储存和提取NSRect值:
+ (NSNull *) null;
添加到集合
[contact setObject: [NSNull null] forKey:@"home fax machine"];
if(homefax == [NSNull null])
{
//....确定没有传真机
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
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])
{
//....确定没有传真机
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
相关文章推荐
- ——黑马程序员——OC中NSNumber、NSValue、NSDate 的使用总结
- OC学习小结之Foudation -NSNUmber、NSValue、NSNull、NSDate
- Objective-C的数值类NSNumber、NSValue、NSNull
- OC——Foundation—常用的类(4)——NSNumber、NSValue、NSNull、NSDate
- 黑马程序员 oc随记 NSNumber、NSValue与NSDate
- 【黑马程序员】【Foundation框架】NSNumber、NSValue和NSData
- 黑马程序员--OC自学笔记---10Foundation、NSFileManager、iOS沙盒、OC结构体、NSNumber、NSValue、NSDate、copy、单例模式
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员--ios基础--oc-foundation--NSSet、NSDictionary、NSNumber、NSValue、NSDate
- 06.黑马程序员-NSNumber、NSValue、NSData
- 黑马程序员---Foundation常用类(NSNumber、NSValue、NSDate)
- Objective-C之Foundation框架NSNumber、NSNull、NSValue、NSDate用法介绍
- 黑马程序员_Foundation学习之NSSet、NSDictionary、NSNumber、NSValue、NSDate
- 27-NSNumber、NSvalue
- 黑马程序员-OC学习笔记-----Foundation框架(集合、NSNumber、NSDate)
- 黑马程序员16——OC之Fundation(NSNumber)
- 黑马程序员----OC学习笔记之NSNumber和NSValue
- 黑马程序员——Foundation---NSSet,NSDictionary,NSNumber,NSDate,NSValue
- Foundation4,NSNumber,NSValue,NSNull,NSDate
- 【OC05-2】NSSet、NSNumber、NSValue、NSDate、异常处理(连载七)