NSData与NSString

NSdata的概念

1、使用文件时需要频繁地将数据读入一个临时存储区,它通常称为缓冲区

2、NSdata类提供了一种简单的方式,它用来设置缓冲区,将文件的内容读入缓冲区,或者将缓冲区内容写到一个文件。

3、对于32位应用程序,NSdata缓存最多2GB

4、我们有两种定义 NSData(不可变缓冲区),NSMutableData(可变缓冲区)

上面的描述有点片面,再补充一些:

NSData就是字节流的数据,它为字节流提供面向对象的存储空间,能够把一些字符串或图片等等一些非常复杂的数据类型转换成01字节流。在Objective-c中几乎所有的对象类型都可以转换成NSData(字符串也属于对象类型),基本数据类型需要先封装成对象,再转换成NSData。

在iOS中将对象序列化时,就需要将对象转换成为字节流数据即NSData类型的数据。

在要求将数据进行网络传输的场合,也需要将数据转化成为字节流才能进行传输。无论是向服务器写数据、还是从服务器返回的数据都应该是NSData类型的。

NSString,NSData,char的转换
1. NSString转化NSData

NSData* aData = [@"a nsstring" dataUsingEncoding: NSUTF8StringEncoding];

2.NSData转化NSString

NSString* aString = [[NSString alloc] initWithData:aData encoding:NSUTF8StringEncoding];

3.NSString转化char

char cstr[10];
cstr =[aString UTF8String];

4.NSData转化char

char* cstr=[aData bytes];

5.char转化NSString

- (id)initWithUTF8String:(const char *)bytes
NSString *bString = [[NSString alloc] initWithUTF8String:cstr];

6.char转化NSData

NSData *data = [NSData dataWithBytes:cstr length:strlen(cstr)];
时间: 12-21

NSData与NSString的相关文章

iOS解决NSData转NSString后字符为空

iOS中,将NSData转NSString的一般方法为[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];但是当data中包含00时,所获得的新字符就会为nil,这时我们应该这样转 [NSString stringWithUTF8String:[data bytes]];

NSData NSDate NSString NSArray NSDictionary 相互转化

//    NSData  NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil

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: NSUTF8StringEncodi

iOS 7: Base64 Encode and Decode NSData and NSString Objects

iOS 7: Base64 Encode and Decode NSData and NSString Objects FRI, JAN 24 CORE SERVICES TWEET With the release of iOS 7, Apple added support for encoding and decoding data using Base64. In this post we will walk through two examples using Base64 to enc

解决NSData转NSString返回nil的问题

在使用initWithData等方法将NSData转换成NSString时,如果NSData的内容含有非encoding编码的字符,将会返回nil. ----------SDK文档如下------------- - (instancetype)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding; Return Value An NSString object initialized by converting the b

swift gbk NSData 转 NSString

let enc = CFStringConvertEncodingToNSStringEncoding(0x0632) let json = NSString( data: data, encoding:enc)

NSString、NSData、char* 类型之间的转换-备

1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length])); 与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节 2. NSString 转化为 char * NSString * str=

iOS NSString 与NSData转化

1. 字符串转Data NSString * str =@"str"; NSData *data =[str dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转NSString NSString * str  =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.data 转char NSData *data; char * haha=[data 

iOS中NSString,NSData和char的相互转换,JSON串转化为NSDictionary或NSArray

1.NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.NSData 转换成char* NSData