数据打包和解包入门篇

数据的传输和获取,通常会涉及到数据的压缩和解压等操作

如果现在有这么个需求

1、从服务器下载的图片,根据图片的二进制数据流决定图片的格式,你会怎么办? (数据截取)
2、需要将用户每天24小时的生活状态传到服务器,然后可以按年/月/周/天取出并统计、展示等,你会怎么办?(字节数组)

对于上面的问题,我们就必须考虑数据结构,并实现压缩和解压等操作
下面给予一个简单的示例,希望有所启示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  //打包

int tmpSize = 10;
Byte *tmpBuffer = malloc(sizeof(Byte)*tmpSize);
for (int i = 0;i<tmpSize;i++) {
tmpBuffer[i] = i;
}
NSData *data = [[NSData alloc] initWithBytes:tmpBuffer length:tmpSize];

//解包

NSInteger length = data.length;
Byte *parseBuffer = malloc(sizeof(Byte) * length);
[data getBytes:parseBuffer length:length];
// [data getBytes:parseBuffer range:NSMakeRange(0, length)];
Byte *p = parseBuffer;
Byte *q = parseBuffer+length;
while (p<q) {
int parseValue = *p;
NSLog(@"parse value is %d",parseValue);
++p;
}

free(tmpBuffer);
free(parseBuffer);

存粹没事瞎折腾 ヾ(≧▽≦*)o