首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NSData使用与分析

NSData使用与分析

原创
作者头像
用户8671053
修改2021-11-01 09:17:52
修改2021-11-01 09:17:52
63300
代码可运行
举报
文章被收录于专栏:码农的生活码农的生活
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
//

//  main.m

//  TestNSData&NSDate

//

//  Created by ibokan on 14-8-10.

//  Copyright (c) 2014年 杨斌. All rights reserved.

//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])

{

    @autoreleasepool {



        char *str="A C string!";

        char *str2="B C string!";

        char *str3="C C string";

        NSData *data1=[NSData dataWithBytes:str length:strlen(str)+1];//创建不可变的字节对象

        NSLog(@"不可变的data1的字节是:%@",data1);//输出十六进制的ASCII编码,当然要加上最后的字符串的结尾符号,所以长度要加一



        NSLog(@"不可变的data1的长度是:%d,输出指针:%s",[data1 length],[data1 bytes]);//length是字节的长度,bytes是返回一个指针

        NSData *data2=[NSData dataWithBytes:str2 length:strlen(str2)+1];//用于追加到可变G的mdata的中间对象



        NSMutableData *mdata=[NSMutableData dataWithBytes:str3 length:strlen(str3)+1];



        [mdata appendData:data2];//追加data对象



        [mdata appendBytes:str length:strlen(str)+1];//2.追加字符串



        NSLog(@"可变的字节对象:%@",mdata);



    }

    return 0;

}

输出结果:

2014-08-10 17:19:46.795 TestNSData&NSDate[1214:303] 不可变的data1的字节是:<41204320 73747269 6e672100>

2014-08-10 17:19:46.805 TestNSData&NSDate[1214:303] 不可变的data1的长度是:12,输出指针:A C string!

2014-08-10 17:19:46.805 TestNSData&NSDate[1214:303] 可变的字节对象:<43204320 73747269 6e670042 20432073 7472696e 67210041 20432073 7472696e 672100>

Program ended with exit code: 0

结果的说明:输出的data对象实际上是ASCII码的组合,每两个十六进制数字代表一个字母或者其他的ASCII字符的ASCII值,计算出

x41输出的开头可以看出A的ASCII码是65对应的十六进制是41,空格则是x20,十进制的ASCII是32!

strlen(str)+1是因为字符串最后的结尾符并未被计算成字符所以得加上一,’\0’的ASCII是00;

NSMutableData是NSData的子类

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档