IOS 基本数据类型 -NSData

1、NSData

  注释:

    用于存储二进制的数据类型

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

不变缓冲区(NSData类),也可定义可变的缓冲区(NSMutableData类)。

  NSData 、 NSString互转:

    NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; //NSString转换成NSData类型

    NSString * newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

  NSData 、Byte 互转

    NSString *testString = @"1234567890";

    NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];

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

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

  NSData转UIImage

    UIImage *aimage = [UIImage imageWithData: data];

  NSData转NSDictionary

@interface NSDictionary (Helpers)

+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data;

@end

@implementation NSDictionary (Helpers)

+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data { 
    CFPropertyListRef plist =  CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, 
                                                               kCFPropertyListImmutable, 
                                                               NULL); 
    if(plist == nil) return nil; 
    if ([(id)plist isKindOfClass:[NSDictionary class]]) { 
        return [(NSDictionary *)plist autorelease]; 
    } 
    else { 
        CFRelease(plist); 
        return nil; 
    } 
}

@end

NSData 应用场景 

将文件的内容读入内存缓冲区

    NSData *fileData;

    NSFileManager *fileManager = [[NSFileManager alloc]init];

    fileData = [fileManager contentsAtPath:path];

  将缓冲区的内容写入到一个文件中

    NSFileManager *fileManager = [[NSFileManager alloc]init];

    [fileManager createFileAtPath:path contents:fileData attributes:nil];

天下文章一大抄 该文内容根据以下博客整理

http://www.cnblogs.com/GISerYang/p/3345350.html

http://bj007.blog.51cto.com/1701577/538990/

http://blog.csdn.net/jerryvon/article/details/7350567

http://www.cnblogs.com/duchengdong/archive/2012/03/29/2422997.html

时间: 2024-08-11 00:05:20

IOS 基本数据类型 -NSData的相关文章

iOS 基础类解析 - NSData

NSData Class Reference Inherits from NSObject Conforms to NSCopying NSMutableCopying NSSecureCoding NSObject (NSObject) Framework /System/Library/Frameworks/Foundation.framework Availability Available in iOS 2.0 and later. Declared in NSData.h Compan

iOS - Usage of NSData

Reference link : https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/BinaryData/Tasks/WorkingBinaryData.html 1. create NSData, here msgData is also a NSData: const Byte * data = (const Byte *)[msgData bytes]; heartbeat.rawData = [N

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

1.NSDictionary类型转换为NSData类型: NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"balance", @"key", @"remaining balance", @"label", @"45", @"value", @"USD", @"curre

iOS 图片转NSData-b

iOS开发中 UIImage可能经常需要转为NSData 上传 传递等等 有两个比较常用的方法 UIImageJPEGRepresentation UIImagePNGRepresentation 第一个方法有两个参数 UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality); 第一个参数就是图片,第二个参数 就是需要设置的清晰度,值介于0到1之前,值越大却清晰,占用空间就越大,反之,值越小清

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 字典和NSData之间转换

1 //字典转NSData: 2 +(NSData *)returnDataWithDictionary:(NSDictionary*)dict 3 { 4 NSMutableData *data = [[NSMutableData alloc]init]; 5 NSKeyedArchiver* archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data]; 6 [archiver encodeObject:dict

IOS中的NSData和NSFileManager例子微解

//NSData遵循NSCopying NSCoding协议,它提供面向对象的数组存储为字节 //适用与读写文件,而读写文件的时候需要一个缓冲区,而NSDate就提供了这么一个缓存区 //定义一个char类型的字符串 const char * string = "Hi there ,this is a C string"; //建立缓冲区,把字符串添加进去 NSData * data = [NSData dataWithBytes:string length:strlen(string

<iOS>UIImage变为NSData并进行压缩

http://www.cnblogs.com/robinkey/archive/2013/01/21/2869930.html //sdk中提供了方法可以直接调用 UIImage *img = [UIImage imageNamed:@"some.png"]; NSData *dataObj = UIImageJPEGRepresentation(img, 1.0); //下面是sdk中UIImage.h头文件中的内容 UIKIT_EXTERN NSData *UIImagePNGRe

关于iOS开发中NSData相关

NSString * str = @"hello world"; //把字符串转成data这种叫做数据流的格式    NSData * data = [str dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@",data); //用UTF-8 为数据流转为字符串格式    NSString * str1 = [[NSString alloc]initWithData:data encoding:NSUTF8Str