`

Iphone开发-NSdata 与 NSString,Byte数组,UIImage 的相互转换

 
阅读更多

1. NSData 与 NSString

NSData-> NSString

NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];

 

NSString>NSData

NSString *aString = @"1234abcd";

NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];

 

2.NSData  Byte

NSData> Byte数组

NSString *testString = @"1234567890";

NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];

Byte *testByte = (Byte *)[testData bytes];

for(int i=0;i<[testData length];i++)

printf("testByte = %d\n",testByte[i]);

 

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 allocinitWithBytes:byte length:24];

 

Byte数组->16进制数

Byte *bytes = (Byte *)[aData bytes];

NSString *hexStr=@"";

for(int i=0;i<[encryData length];i++)

{

NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数

if([newHexStr length]==1)

hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];

else 

hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];

}

NSLog(@"bytes 16进制数为:%@",hexStr);

 

16进制数->Byte数组

///// 16进制数据转化成Byte 数组

NSString *hexString = @"3e435fab9c34891f"; //16进制字符串

int j=0;

Byte bytes[128];  ///3ds keyByte 数组, 128

for(int i=0;i<[hexString length];i++)

{

int int_ch;  /// 两位16进制数转化后的10进制数

 

unichar hex_char1 = [hexString characterAtIndex:i]; ////两位16进制数中的第一位(高位*16)

int int_ch1;

if(hex_char1 >= '0' && hex_char1 <='9')

int_ch1 = (hex_char1-48)*16;   //// 0 Ascll - 48

else if(hex_char1 >= 'A' && hex_char1 <='F')

int_ch1 = (hex_char1-55)*16//// A Ascll - 65

else 

int_ch1 = (hex_char1-87)*16//// a Ascll - 97

i++;

 

unichar hex_char2 = [hexString characterAtIndex:i]; ///两位16进制数中的第二位(低位)

int int_ch2;

if(hex_char2 >= '0' && hex_char2 <='9')

int_ch2 = (hex_char2-48); //// 0 Ascll - 48

else if(hex_char1 >= 'A' && hex_char1 <='F')

int_ch2 = hex_char2-55//// A Ascll - 65

else 

int_ch2 = hex_char2-87//// a Ascll - 97

 

int_ch = int_ch1+int_ch2;

NSLog(@"int_ch=%d",int_ch);

bytes[j] = int_ch;  ///将转化后的数放入Byte数组里

j++;

}

NSData *newData = [[NSData allocinitWithBytes:bytes length:128];

NSLog(@"newData=%@",newData);

 

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

分享到:
评论

相关推荐

    NSData 与 NSString,Byte数组,UIImage 的相互转换

    在iOS和macOS开发中,`NSData`、`NSString`以及`UIImage`是常见的数据类型,它们在不同的场景下有着各自的用途。理解并熟练掌握它们之间的转换是非常重要的,这有助于我们处理各种数据和资源。下面将详细介绍这些...

    ios demo,NSData和NSString之间的相互转换的源代码

    这个“ios demo,NSData和NSString之间的相互转换的源代码”提供了实现这种转换的示例代码。 首先,让我们深入了解一下NSData和NSString的基本概念: 1. **NSData**:NSData是Foundation框架中的一个类,它代表了...

    ios的NSString, char, NSData格式转化

    iOS 开发中,我们经常需要在NSString、char、NSData之间进行格式转化,以满足不同的需求。下面我们将详细介绍这些格式转化的方法和示例代码。 NSString 转化为 UNICODE String 有时我们需要将NSString转化为...

    NSData-Crypto:NSDataNSString 包装器中的 MD5、SHA1 和许多其他常见摘要方法

    NSData+Crypto是一个 Mac 和 iOS 的NSData和NSString包装器,用于 CommonCrypto 框架的摘要方法。 包装了以下摘要函数: MD2 MD4 MD5 沙1 sha224 sha256 sha384 sha512 所有摘要函数都可用于NSData 、 ...

    Ascii85-Encoding-Categories:NSData 和 NSString 的简单类别以支持将它们编码为 Ascii85。 这些类别采用 RFC 1924 Ascii85 字符集

    在IT行业中,编码和解码是数据传输与存储的关键环节,Ascii85编码是一种用于高效、节省空间地表示二进制数据的机制。本文将深入探讨Ascii85编码,以及如何在Objective-C中利用类别(Category)为NSData和NSString...

    NSData+AESCrypt库

    - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...

    ios NSData NSString AES加密解密算法源码

    本示例中的源码着重介绍了如何在Objective-C环境下,利用NSData和NSString进行AES加密与解密操作。 首先,AES是一种块加密算法,它将数据分为128位的块进行处理。在iOS中,通常通过CommonCrypto库来实现AES的加解密...

    NSData与NSDictionary、JSON数据类型相互转换

    在本文中,我们将探讨如何使用NSData与其他类型,特别是NSDictionary和JSON数据进行转换。 首先,NSData允许开发者将各种数据类型(如结构体、图像等)转换为二进制格式,以便于存储或在网络上传输。例如,在提供的...

    NSData+AESCrypt

    - (NSData *)AES256EncryptWithKey:(NSString *)key; - (NSData *)AES256DecryptWithKey:(NSString *)key; + (NSData *)dataWithBase64EncodedString:(NSString *)string; - (id)initWithBase64EncodedString:...

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    总结来说,iOS开发中,利用NSData和NSDictionary的相互转换可以方便地处理数据的存储和传递。通过`NSKeyedArchiver`和`NSKeyedUnarchiver`,我们可以轻松地在两者之间进行序列化和反序列化操作。在处理JSON数据时,`...

    NSString-HEX:NSString 类上的十六进制实用程序类别

    2. `- (NSData *)dataUsingEncodingWithHex`: 此方法将NSString对象转换为NSData,其中的字符串被视为十六进制序列。这可以用于将十六进制表示的二进制数据还原成原始形式。 3. `+ (NSString *)stringWithHex:...

    swift-一行代码搞定NSString和NSData的md5加密

    在iOS应用开发中,我们可能需要对NSString(字符串)或NSData(二进制数据)进行MD5加密。标题提到的“一行代码搞定NSString和NSData的md5加密”意味着存在一个高效且简洁的方法来实现这个功能。 在Swift中,尽管...

    如何学习iPhone之开发过程中的一些小技术的总结--千锋培训

    ### 如何学习iPhone开发过程中的关键技术点 #### 一、随机数的使用 在iOS开发中,随机数的使用非常广泛,例如游戏开发中的随机事件触发、数据模拟测试等场景。常用的随机数生成方法有两种: 1. **使用`srandom()`...

    SDK1.6.2 demo.zip

    Byte* pBuffer = (Byte *)malloc(BUFFER_SIZE); memset(pBuffer, 0, BUFFER_SIZE); NSData* data = [NSData dataWithBytes:pBuffer length:BUFFER_SIZE]; free(pBuffer); UIImage *thumbImage = [UIImage ...

    base64-utf8编码的NSString转化为NSString

    在解析xib文件的时候发现有的节点内容的编码是 base64-UTF8,其实这个节点内容的编码顺序是先将NSString转化为utf8格式的NSData,再将NSData通过base64加密。刚拿到这样的字符串的时候感觉有点绕,但是仔细分析下来...

    OC-YYModel(数组)

    在iOS开发中,数据模型的序列化和反序列化是一个常见的需求,这涉及到将对象转换为JSON字符串(序列化)和从JSON字符串恢复对象(反序列化)。`YYModel`是一个高效、易用的Objective-C数据模型框架,由尹正(YY)...

    iOS数组和字典转JSON格式

    总结,iOS开发中,使用`NSJSONSerialization`类可以轻松地将数组和字典转换为JSON格式。封装成单独的工具类,能够进一步提升开发效率,使代码更加整洁。在实际项目中,一定要注意处理可能出现的错误,确保数据转换的...

    iOS NSData 详细使用说明

    在iOS开发领域,`NSData`类扮演着至关重要的角色,它是Foundation框架的一部分,主要用于处理二进制数据。本文档旨在全面解析`NSData`的使用方法、功能特性以及在实际开发中的应用技巧,帮助开发者深入理解并高效...

    ios-UIImage Compress.zip

    UIImage Compress - (UIImage *)compressedImage; - (CGFloat)compressionQuality; - (NSData *)compressedData; - (NSData *)compressedData:(CGFloat)compressionQuality; - (UIImage *)...

    Base64:NSData和NSString的Objective-C Base64添加

    以下性能指标可用于与2012年提供的库进行比较,并且可能无法反映当前的性能。 如有疑问,请使用系统提供的功能。 用法:可可豆脚-已淘汰 将以下行添加到您的Podfile中: source '...

Global site tag (gtag.js) - Google Analytics