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);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容