NSString 和NSData

 NSString 转换成NSData 对象
      NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding];
  
   NSData 转换成NSString对象
   NSData * data;
       NSString *result = [[NSString alloc] initWithData:data  encoding:NSUTF8StringEncoding];


NSData 转换成char*
NSData *data;
char *test=[data bytes];


char* 转换成NSData对象
byte* tempData = malloc(sizeof(byte)*16);
NSData *content=[NSData dataWithBytes:tempData length:16];

 

int --> NSData 
int someInt = 1;
NSString *aString = [NSString stringWithFormat:@"%d",someInt];
NSData *someData = [aString dataUsingEncoding:NSUTF8StringEncoding];
[someData writeToFile:[documentsDirectory stringByAppendingString:@"someFile"] atomically:YES];



NSData --> int

NSData* someData = [NSData dataWithContentsOfFile:[documentsDirectory stringByAppendingString:@"someFile"];
NSString *aString = [NSString alloc] initWithData:someData encoding:NSUTF8StringEncoding];
int someInt = [aString intValue];

typedef struct _INT{

int t1;

int t2;

}INT_STRUCT;

typedef struct _STRING{

NSString *st1;

NSString *st2;

UIImage *image;

}STRING_STRUCT;

//初始化两个变量

INT_STRUCT theInt = {2,5};

STRING_STRUCT theString = {@"string1",@"string2",[UIImage imageNamed:@"icon57.png"]};

//将这两个变量添加到data中,他们现在是二进制

NSMutableData *theData = [NSMutableData data];

[theData appendBytes:&theInt length:sizeof(INT_STRUCT)];

[theData appendBytes:&theString length:sizeof(STRING_STRUCT)];

//保存到你的路径,可以不需要后缀名

[theData writeToFile:@"mySave" atomically:YES];


//读取

INT_STRUCT newInt;

STRING_STRUCT newString;

NSMutableData *newData = [NSData dataWithContentsOfFile:@"mySave"];


//按地址赋值,注意range的范围

[newData getBytes:&newInt range:NSMakeRange(0,sizeof(INT_STRUCT))];

[newData getBytes:&newString range:NSMakeRange(sizeof(INT_STRUCT),sizeof(INT_STRUCT)+sizeof(STRING_STRUCT))];

NSLog(@"newInt.t1===%d",newInt.t1);

NSLog(@"newString.image===%@",newString.image);

NSLog(@"theString.image===%@",theString.image);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

keivin2006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值