NSData,Byte,NSString 转换
2016-01-05 12:21
316 查看
//char 占一个字节 //int占四个字节 //当int变量值 处于 -128到127之间时,int char可以直接互相赋值!
//int 转 NSData int i = 1; NSData *data = [NSData dataWithBytes: &i length: sizeof(i)];
//将NSData转换成char,并以十六进制输出 Byte *bytes = (Byte *)[data bytes]; NSUInteger bufLen = data.length; for (int i = 0; i < bufLen; ++i) { NSLog(@"%x",bytes[i]); }
1,NSData 与 NSString NSData --> NSString NSString *aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding]; NSString --> NSData NSString *aString = @"1234"; NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding]; 2,NSData 与 Byte NSData --> Byte NSString *testString = @"1234567890"; NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding]; Byte *testByte = (Byte *)[testData bytes]; Byte --> NSData Byte byte[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23}; NSData *adata = [[NSData alloc] initWithBytes:byte length:24]; 3,NSData 与 UIImage NSData --> UIImage UIImage *aimage = [UIImage imageWithData: imageData]; //例:从本地文件沙盒中取图片并转换为NSData NSString *path = [[NSBundle mainBundle] bundlePath]; NSString *name = [NSString stringWithFormat:@"ceshi.png"]; NSString *finalPath = [path stringByAppendingPathComponent:name]; NSData *imageData = [NSData dataWithContentsOfFile: finalPath]; UIImage *aimage = [UIImage imageWithData: imageData]; UIImage-> NSData NSData *imageData = UIImagePNGRepresentation(aimae); 4,NSData 与 NSMutableData NSData --> MSMutableData NSData *data=[[NSData alloc]init]; NSMutableData *mdata=[[NSMutableData alloc]init]; mdata=[NSData dataWithData:data]; 5,NSData合并为一个NSMutableData - (NSString *)filePathWithName:(NSString *)filename { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; return [documentsDirectory stringByAppendingPathComponent:filename]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //音频文件路径 NSString *mp3Path1 = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"]; NSString *mp3Path2 = [[NSBundle mainBundle] pathForResource:@"2" ofType:@"mp3"]; //音频数据 NSData *sound1Data = [[NSData alloc] initWithContentsOfFile: mp3Path1]; NSData *sound2Data = [[NSData alloc] initWithContentsOfFile: mp3Path2]; //合并音频 NSMutableData *sounds = [NSMutableData alloc]; [sounds appendData:sound1Data]; [sounds appendData:sound2Data]; //保存音频 NSLog(@"data length:%d", [sounds length]); [sounds writeToFile:[self filePathWithName:@"tmp.mp3"] atomically:YES]; [window makeKeyAndVisible]; return YES; }
//char 转int ,比如说四个字节存储一个int型的类型高度 uint8_t a = 13; uint8_t b = 0; uint8_t c = 0; uint8_t d = 0; NSMutableData *ret = [[NSMutableData alloc] init]; [ret appendBytes:&a length:1]; [ret appendBytes:&b length:1]; [ret appendBytes:&c length:1]; [ret appendBytes:&d length:1]; Byte *bytes = (Byte *)[ret bytes]; UInt32 spsLength = *((uint16_t*)(bytes)); NSLog(@"%d",spsLength);
相关文章推荐
- 浅谈TabLayout
- iOS 7的手势滑动返回功能
- 浅谈android add_service PERMISSION DENIED问题
- jdk, tomact以及 sdk环境变量配置
- (转)java 静态内部类
- git warning解决方案
- 在Windows7下安装python神器——pip
- web前端图片极限优化策略
- CSS Sprites
- 《笨办法学Python》 第5课手记
- [转]Ubuntu10下MySQL搭建Amoeba系列(文章索引)
- ZOJ Problem Set - 3626 树形背包 水题
- LINUX 标注I/O
- iOS nil、NULL 的区别
- 关于注入
- BRIEF特征匹配
- 批量测试邮箱登录python脚本
- 数据库管理
- hive 行转列和列转行的方法
- Objective-C语法概述