iOS数据类型转换。

来源:互联网 发布:中华田园犬 知乎 编辑:程序博客网 时间:2024/06/07 19:51

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

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等基本数据类型在直接转换就是在前面加@,如果是变量就用()将变量括起来


0 0
原创粉丝点击