遇到这个问题,我想通过凹凸发送的图像,但磕碰API的最大块为256KB如何NSKeyedUnarchiver与多块来自凹凸?
if([[NSKeyedArchiver archivedDataWithRootObject:self.selectedImg]length] > 262144)
{
int dlen = [[NSKeyedArchiver
archivedDataWithRootObject:self.selectedImg] length];
NSLog(@"Sending data: %i bytes in %d chunks",dlen,
(int)ceil(((float)dlen/262144.0f)));
for (int i=1; i <= (int)ceil(((float)dlen/262144.0f)); i++) {
int maxr=0;
if ((262144*i) > dlen) {
maxr = dlen-(262144*(i-1));
} else {
maxr = 262144;
}
NSData *moveChunk = [[NSKeyedArchiver
archivedDataWithRootObject:self.selectedImg]
subdataWithRange:NSMakeRange(262144*(i-1),maxr)];
NSLog(@"Sending Chunk: %d, %d bytes",i,[moveChunk length]);
[bumpObject sendData:moveChunk];
}
}
else
{
//Data is 254kb or under
NSData *moveChunk = [NSKeyedArchiver
archivedDataWithRootObject:self.selectedImg];
[bumpObject sendData:moveChunk];
}
我如何编译所有的块一起?
一直花费3小时,但解决不了。
为什么不将'[NSKeyedArchiver archivedDataWithRootObject:self.selectedImg]'的值赋给变量?我认为创建一个数据对象在系统资源上可能并不是微不足道的......(另外,你为什么不直接使用'dlen/262144'?不管怎样,整数分割都会被截断)。 – samson 2012-04-15 10:22:41
这是发送数据,这很好。但我需要知道如何从设备的另一侧恢复 – Desmond 2012-04-15 10:40:36
这很难以这种方式阅读。 – samson 2012-04-15 10:45:12