OC中各数据类型转换 NSData转NSString,Byte,UIImage无标题文章

1.NSData 与 NSString

NSData --> NSString

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
或
NSString *str = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

NSString --> NSData

NSString *aString = @"1234";
NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];
或
NSData *aData = [[NSData alloc]  initWithBase64EncodedString:aString options:NSDataBase64DecodingIgnoreUnknownCharacters];


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;
}


6.UIimage 和 NSString 互相转换

  • swift
let image = UIImage.init(named: "1024-01") 
// t图片转data let data = UIImagePNGRepresentation(image!) 
// data 转string 注意是base64EncodedStringWithOptions 这个方法不能使用 [NSString.init(data: <#T##NSData#>, encoding: <#T##UInt#>)] 必须是这个编码 let str=
data?.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) 
// string转data
 let data1 = NSData(base64EncodedString:str!,options: .IgnoreUnknownCharacters) 
// data 转 图片 
let image2 = UIImage.init(data: data1!) print(image2)
  • oc
UIImage *image = [UIImage imageNamed:@"640"];
NSData *data = UIImagePNGRepresentation(image);
NSString *str = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
NSLog(@"%@",str);
NSData *data1 = [[NSData alloc] initWithBase64EncodedString:str options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *image1 = [[UIImage alloc] initWithData:data1];
NSLog(@"%@",image1);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容