杂记-- 转换和NSMUTableData 的使用

 


一。 转换

   /// 字符串转NSData

    

    NSString *string=@"123";

    NSData *data=[string  dataUsingEncoding:NSUTF8StringEncoding];

    

    // NSData 字节数组

    Byte *betys=(Byte *)[data bytes];

    for (int index=0; index < [data length]; index ++) {      /// 注意:  在获取字节数组的长度(无法获取,可以转换为data的长度)

        

      //  NSLog(@"--------%hhu",betys[index] );    / 返回的是 ASCLL

    }

    

    // 字节数组 NSdata

    

    Byte byte[]={1,2};

    NSData *newData=[[NSData alloc]initWithBytes:byte length:2];

    

    // NSdata   字符串

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


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= @“Test”;
const char * a =[str UTF8String];

3.char * 转化为 NSString
NSString *str=[NSString stringWithCString  encoding:NSUTF8StringEncoding];




二 。方法

    ///   获取字符串的字节长度

-(int)charNumber:(NSString*)strtemp {

    

    int strlength = 0;

    char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];

    for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {

        if (*p) {

            p++;

            strlength++;

        }

        else {

            p++;

        }

    }

    return strlength;

}

  


三。 NSMutableData


   // NsMutableData 的拼接    思路: 1.字符串转成nsdata获取长度,转换为字节数组, 最后获取想要的Data,然后  【muldata appendData:data】;

    NSMutableData *muldata=[NSMutableData data];

    NSString *str=@"1234";

    NSData *newData=[str dataUsingEncoding:NSUTF8StringEncoding];

     Byte *bytes=(Byte *)[newData  bytes];

    NSData *data=[NSData dataWithBytes:bytes length:4];

    [muldata appendData:data];

    

    NSString *str1=@"AA";

    NSData *newData1=[str1 dataUsingEncoding:NSUTF8StringEncoding];

    Byte *bytes1=(Byte *)[newData1  bytes];

    NSData *data1=[NSData dataWithBytes:bytes1 length:2];

    [muldata appendData:data1];

    NSString *ste=[[NSString alloc]initWithData:muldata encoding:NSUTF8StringEncoding];


       截取Nsdata

  1. [mutableData getBytes:&strlen1 range:NSMakeRange(4sizeof(int))];  
  2.       
  3.     NSData *strData = [mutableData subdataWithRange:NSMakeRange(8, strlen1)];;  
  4.     
  5.     NSString *string1 = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值