OC语言 常用数据类型=>>NSData & NSMutableData

来源:互联网 发布:网络摄像机软件 编辑:程序博客网 时间:2024/06/05 06:19

常用数据类型=>>NSData & NSMutableData



//

//  main.m

//  Tank-OC07-01

//

//  Created by ibokan on 15/12/17.

//  Copyright © 2015谭其伟. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc,constchar * argv[]) {

    @autoreleasepool {

       

    

    //NSData | NSMutableData

    /*

     1.计算机中文件分为哪几种?

     分两种:一种二进制文件,一种是文本文件

     二进制文件:图片,视频,音频等

     文本文件:像‘.txt’的文件就是文本文件

     

     2.客户端与服务器端,或者客户端与客户端数据交流的格式为二进制(字节流)。

     那么对于传输给客户端的数据,在OC中用什么类来存储呢?---即为'NSData'类。在'NSData'类中,由其实例化的对象,此对象中包含大量的字节,这些字节就是我们客户端想要的信息。

     

     

     

     

     

     

     

     */

    

    //创建一个空的的data

        NSData *data1 = [NSDatadata];    //API里的104行看出要这样

        

        //将字符串转换成NSData

          //C语言中字符转成data

        //使用const关键字来将一个变量变为常量了。(原本char *str为变量)。const修饰的常量称为符号常量(有些地方也成为命名常量),它所修饰的值一旦被设定以后,后期再无法更改。

       const char *str ="Hello";

        

        NSData *data2 = [NSDatadataWithBytes:strlength:strlen(str)];        //API里的105行看出要这样   strlen求长度方法

        NSLog(@"data2 = %@",data2);   //用终端打 man ascii打开查找

        

//        char *name = "Rick";

//        char name1[] = "Rick";        //作业:可不可以修改,

//        

//        

        //直接装饰OC中字符串转成data

        NSString *string =@"你好么";

        NSData *data3 = [stringdataUsingEncoding:NSUTF8StringEncoding];  //API39行,可以写4

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

        

        //将本地文件中的数据转换成data

        NSData *data4 = [NSDatadataWithContentsOfFile:@"/Users/ibokan/Desktop/Kiwir-OC/Tank-OC07-01/Tank-OC07-01/anglybaby.jpg"];

        

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

        

        

        //从网络读取数据转化成data

        NSData *data5 = [NSDatadataWithContentsOfURL:[NSURLURLWithString:@"http://www.huabian.com/uploadfile/2015/1124/20151124033032915.jpg"]];

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

        

        //将数据写入指定文件

        BOOL flag = [data5writeToFile:@"/Users/ibokan/Desktop/girl3.png"atomically:YES];

        //girl是名称,可自取,png格式

:如果是YES,则拷贝副本保存,如果是NO,则是直接保存,以后如果程序破坏了,则直接保存的文件也会破坏。而YES的就不会,但两者都会输出,一般选择YES


        if (flag) {

            NSLog(@"success");

        }

        

        

        

        //data字节长度      API 72

        NSUInteger length = data4.length;

        NSLog(@"lenth = %lu",length);

        

        

        //创建一个空的data NSMutableData

        NSMutableData *mData = [NSMutableDatadata];

        

        //增加data    api 171

        [mData appendData:data4];

//        NSLog(@"mData = %@",mData);

        

        

        

    }

    return 0;

}



输出结果


2015-12-17 16:47:10.950 Tank-OC07-01[26862:239755] data2 = <48656c6c 6f>2015-12-17 16:47:10.951 Tank-OC07-01[26862:239755] data3 = <e4bda0e5 a5bde4b9 88>2015-12-17 16:47:30.420 Tank-OC07-01[26862:239755] success2015-12-17 16:47:30.420 Tank-OC07-01[26862:239755] lenth = 45503Program ended with exit code: 0



0 0
原创粉丝点击