美文网首页iOS记录
iOS开发之基础篇(8)—— NSData

iOS开发之基础篇(8)—— NSData

作者: 看影成痴 | 来源:发表于2017-11-07 18:58 被阅读23次

    版本

    Xcode 8.2.1

    简介

    NSData为二进制数据,在文件操作(如保存到本地)、网络、以及核心图形图像中使用较广泛。

    NSData的创建

        //对象方法创建
        NSData *data1 = [[NSData alloc] init];
        NSData *data2 = [[NSData alloc] initWithData:data1];
    
        //类方法创建
        NSData *data3 = [NSData data];
        NSData *data4 = [NSData dataWithData:data3];
    
        //由文件创建
        NSString *filePath = [NSHomeDirectory() stringByAppendingString:@"/Desktop/test.txt"];  
        NSData *data5 = [[NSData alloc] initWithContentsOfFile:filePath];
        NSData *data6 = [NSData dataWithContentsOfFile:filePath];
    
        // 由 URL 创建
        NSURL *urlPath = [NSURL URLWithString:[@"file://" stringByAppendingString:[NSHomeDirectory() stringByAppendingString:@"/Desktop/test.txt"]]];
        NSData *data7 = [[NSData alloc] initWithContentsOfURL:urlPath];
        NSData *data8 = [NSData dataWithContentsOfURL:urlPath];
    
        // 由 字符串 创建
        NSString *string = @"bei jing nin hao";
        NSData *data9 = [string dataUsingEncoding:NSUTF8StringEncoding];
        NSData *data10 = [string dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
    
        // 可变 NSData 的创建
        // 初始化时指定对象拥有的字节空间大小,在需要时会增加内存空间,在初始化时并没有分配内存空间
        NSMutableData *data11 = [[NSMutableData alloc] initWithCapacity:5];
        NSMutableData *data12 = [NSMutableData dataWithCapacity:5];
    
        // 初始化时为对象分配指定长度的归零字节
        NSMutableData *data13 = [[NSMutableData alloc] initWithLength:10];
        NSMutableData *data14 = [NSMutableData dataWithLength:10];
    

    注:以上代码原文地址http://www.cnblogs.com/QianChia/p/5782732.html#_label0

    NSData与NSString、Byte、UIImage之间的转换

        //NSString 转换成 NSData
        NSString *str = @"Hello";
        NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];
    
        //NSData 转换成 NSString
        NSString *str1 = [[NSString alloc]initWithData:strData encoding:NSUTF8StringEncoding];
    
        //Byte 转换成 NSData
        Byte byte[] = {1,2,3,4,5,6,7,8,9,10};  
        NSData *byteData = [[NSData alloc] initWithBytes:byte length:10];
    
        //NSData 转换成 Byte 
        Byte *testByte = (Byte *)[byteData bytes]; 
    
        //UIImage 转换成 NSData
        NSData *imageData1 = UIImagePNGRepresentation(UIImage *image);     //png 格式 
        NSData *imageData2 = UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality)  //jpeg格式  
    
        //NSData 转换成 UIImage
        UIImage *aimage = [UIImage imageWithData: imageData]; 
    

    相关文章

      网友评论

        本文标题:iOS开发之基础篇(8)—— NSData

        本文链接:https://www.haomeiwen.com/subject/jbajmxtx.html