好吧!
首先,這邊目標是:結合NSString + char[] ,最後變成NSData輸出
NSString *myString = @"123abcdfhhhhhhh";
char *aa = [myString UTF8String];
NSLog(@"%s",aa);
NSLog(@"%lu",sizeof(aa));
NSLog(@"%lu",(unsigned long)[myString length]);
這邊設定一個string ,然後讓他轉utf8格式放到char指標裡面
nslog會顯示
2015-06-04 15:55:32.897 v1.0[4462:60b] 123abcdfhhhhhhh
2015-06-04 15:55:32.898 v1.0[4462:60b] 4
2015-06-04 15:55:32.900 v1.0[4462:60b] 15
所以要特別注意sizeof()並不是mystring分開後的個數,而是4byte
因為這個錯誤搞了半天0rz.....
到這邊已經很順利的把nsstring 改為char了,但是要怎樣把這兩樣結合呢?
const unsigned char two[] = {80 ,67 ,77 ,83 , 2 ,2};//第二個char[]
NSMutableData * muData = [[NSMutableData alloc] init];//用來結合的容器
NSMutableData * data = [NSData dataWithBytes:two length:sizeof(two)];
NSMutableData * data2 = [NSData dataWithBytes:aa length:[myString length]];//這邊要用length
------------------結合--------------------
[muData appendData:data];
[muData appendData:data2];
------------------結合--------------------
NSString *strData = [[NSString alloc]initWithData:muData encoding:NSUTF8StringEncoding];
NSLog(@"%@",strData);
最後輸出成NSString 方便nslog看成果為如何?
2015-06-04 15:55:43.650 v1.0[4462:60b] PCMS123abcdfhhhhhhh
最後使用
最後使用
NSData *aData = [strData dataUsingEncoding: NSASCIIStringEncoding];
轉為NSData~
完成!
end