您的位置:首页 > 其它

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: