objective-c之各种数值

objective-c之各种数值,第1张

概述各种数值 NSArray和NSDictionary都只能存储对象,不能存储任何基本类型的数据,如int,float,struct。因此我们可以用对象来封装基本的数值。 NSNumber Cocoa提供了NSNumber来存储对象,但不能存储C里面的各种数据,所以我们要用一些相应的对象来进行封装。 NSNumber类来包装基本数据对象。可以有下列方法: + (NSNumber *) numberWi 各种数值

NSArray和NSDictionary都只能存储对象,不能存储任何基本类型的数据,如int,float,struct。因此我们可以用对象来封装基本的数值。

NSNumber

Cocoa提供了NSNumber来存储对象,但不能存储C里面的各种数据,所以我们要用一些相应的对象来进行封装。

NSNumber类来包装基本数据对象。可以有下列方法:

+ (NSNumber *) numberWithChar: (char) value;

+ (NSNumber *) numberWithInt: (int) value;

+ (NSNumber *) numberWithfloat: (float) value;

+ (NSNumber *) numberWithBool: (BOol) value;

只要将一个基本类型数据封闭到NSNumber中后,就可以通过下面的实例方法重新获得它:

- (char) charValue:

- (int) intValue;

-(float)floatValue;

- (BOol)boolValue;

- (Nsstring *) stringValue;

 

NSValue

NSNumber实际上是NSValue的子类,NSValue可以包装任意值,你可以用NSValue将结构放入NSArray和NSDictionary中,通过下列方法创建新的NSValue:

+ (NSValue *) valueWithBytes:(const voID *) values

                objCType:(constchar*) type;

传递的参数是你想要包装的数值的地址(如一个NSSize或者你自己的struct)。通常,得到的是你想要存储的变量的地址,你也可以提供一个用来描述这个数据类型的字符串,通常用来说明struct中实体的类型和大小。如下例所示,将NSRect放入到NSArray中:

NSRect rect = NSMakeRect(1,2,30,40);

NSValue *value;

value = [NSValue valueWithBytes: &rect

objCType: @encode(NSRect)];

[array addobject: value];

可以使用getValue:来提供数值:

- (voID) getValue: (voID *) vaule;

调用getValue:时,要传递的是要存储这个数值的变量的地址:

value = [array objectAtIndex:0];

[value getValue: &rect];

 

Cocoa提供了将常用的struct型数据转换成NSValue便捷方法,如下所示:

+ (NSValue*) valueWithPoint:(NSPoint) point;

+ (NSValue*) valueWithSize:(NSSize) size;

+ (NSValue*) valueWithRect:(NSRect) rect;

 

- (NSPoint) pointValue;

- (NSSize) sizeValue;

- (NSRect) rectValue;

例:

value = [NSValue valueWithRect:rect];

[array addobject:value];

NSRect anotherRect = [value rectValue];

 

NSNull

有时确实需要存一个NulL值,而大多数的对象里面是不允许存nil值的,那么使用NSNull就可以解决这个问题。

+ (NSNull *) null;

例:

[contact setobject:[NSNull null]

forKey:@”home fax machine”];

那么怎么进行访问及判断呢:

ID homefax;

homefax = [contact objectForKey:@”home fax machine”];

 

if(homefax == [NSNull null])

{

//…no fax machine

}

总结

以上是内存溢出为你收集整理的objective-c之各种数值全部内容,希望文章能够帮你解决objective-c之各种数值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存