我有NSMutableData字节数组。我需要找到然后删除它。
我的代码:
NSArray *array = [[tunerButtonHostInfo objectForKey:@"local"] objectForKey:@"snPacket"];
NSMutableData *asciiData = [[NSMutableData alloc] init];
[asciiData appendData [@"\x00\x00\x02\x00\x00\x0e"dataUsingEncoding:NSASCIIStringEncoding]];
if(array != nil && ![array isKindOfClass:[NSNull class]] && [array isKindOfClass:[NSArray class]]) {
for(NSNumber *asciiCode in array) {
int asc = [asciiCode intValue];
if(asc == 0) {
NSString *string = @"\x00"; dataUsingEncoding:NSASCIIStringEncoding]];
}
else {
NSString *converted = [NSString stringWithFormat:@"%c", asc];
[asciiData appendData:[converted dataUsingEncoding:NSUTF8StringEncoding]];
}
}
NSLog(@"stringAsciiData"); //print asciiData
NSLog(@"%@", asciiData);
asciiData的输出是:
00000200 000e6808 08680064 6c0b0367 6308c2b0 16
我需要在数组中找到“ c2” ,然后将其删除并将数组中的剩余数据向左移动
答案 0 :(得分:0)
这是对代码c2
的修改。您可以使用附加字节方法,而不是转换为字符串并重新打印回去:
{
NSArray *array = @[@68,@0x08,@0x08,@68,@00,@64,@0x6c,@0x0b,@03,@67,@63,@0x08,@0xc2,@0xb0,@16];
NSMutableData *asciiData = [[NSMutableData alloc] init];
[asciiData appendData:[@"\x00\x00\x02\x00\x00\x0e"dataUsingEncoding:NSASCIIStringEncoding]];
if(array != nil && ![array isKindOfClass:[NSNull class]] && [array isKindOfClass:[NSArray class]]) {
for(NSNumber *asciiCode in array) {
Byte asc = [asciiCode intValue];
if(asc == 0) {
NSString *string = @"\x00";
[asciiData appendData:[string dataUsingEncoding:NSASCIIStringEncoding]];
}else if(asc != 0xc2) {
[asciiData appendBytes:&asc length:1];
}
}
NSLog(@"stringAsciiData"); //print asciiData
NSLog(@"%@", asciiData);
}
}