iOS数据类型转换。

本文介绍了iOS中数据类型转换的方法,包括基本数据类型与字符串之间的转换、结构体与字符串的转换,以及基本数据类型与对象的转换。在转换过程中,使用了NSString的format方法、intValue和floatValue属性,以及NSNumber和NSValue对基本数据类型和结构体的包装。还提到了Xcode编译器新特性,允许直接将基本数据类型转换为NSNumber对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)基本数据与字符串之间转换。

NSString *tempA = @"123";

NSString *tempB = @"456";

 

1,字符串拼接

NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];

 

2,字符转int

int intString = [newString intValue];

 

3,int转字符

NSString *stringInt = [NSString stringWithFormat:@"%d",intString];

 

4,字符转float

float floatString = [ newString floatValue];


5,float转字符

NSString *stringFloat = [NSString stringWithFormat:@"%f",intString];



(二)结构体与字符串的转换

结构体转字符串

NSString *NSStringFromCGPoint(CGPoint point);
NSString *NSStringFromCGVector(CGVector vector);
NSString *NSStringFromCGSize(CGSize size);
NSString *NSStringFromCGRect(CGRect rect);
NSString *NSStringFromCGAffineTransform(CGAffineTransform transform);
NSString *NSStringFromUIEdgeInsets(UIEdgeInsets insets);
NSString *NSStringFromUIOffset(UIOffset offset);

字符串转 结构体
CGPoint CGPointFromString(NSString *string);
CGVector CGVectorFromString(NSString *string);
CGSize CGSizeFromString(NSString *string);
CGRect CGRectFromString(NSString *string);   //我们在监听高度变化时需要用这个 ,获取键盘的frame 值,就是从一个 string类型中取出 CGRect!
CGAffineTransform CGAffineTransformFromString(NSString *string);
UIEdgeInsets UIEdgeInsetsFromString(NSString *string);//距离边界的距离,上左下右的顺序!
UIOffset UIOffsetFromString(NSString *string); 

(三)基本数据类型与对象转换


1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary但是这些类只能存放OC对象类型的数据

2.如果要存放基本数据类型,必须先将基本暑假类型包装成对象类型然后再用集合类进行存储,OC中提供的包装类是NSNumber,NSValue。其中NSNumber继承于NSValue。

3.NSNumber主要针对于基本数据类型的包装,NSValue主要针对结构体进行包装

4.将包装成NSNumber或NSValue对象类型后存放在数组中, 然后从集合类中取出NSNumber、NSValue对象再转换成为基本数据类

例:

//讲int基本数据类型包装成NSMumber对象类型

int a = 5;

NSNumber *a = [NSNumber alloc]initWithInt:a];


5.系统中定义:

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

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

+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;

+ (NSNumber *)numberWithLong:(long)value;

+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;

等常用的方法

可以看出虽然NSNumber提供了很多将基本数据类型转换成为NSNumber对象的方法,但是这样写起来太麻烦,Xcode编译器新特性支持 @[(基本数据类型)]方式,可以直接将基本数据类型转换称为NSNumber对象类型。可以看出将int,double等基本数据类型在直接转换就是在前面加@,如果是变量就用()将变量括起来


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值