我正在处理一个4840字节的NSData
对象,并希望省略前20个字节并获取其余字节。子串方法substringFromIndex:
/ substringToIndex:
是否适用于NSData
?
答案 0 :(得分:5)
即将结束,NSData
有一个方法subdataWithRange:
。您可以使用函数NSMakeRange
创建范围,然后根据需要使用该范围生成NSData
剪裁。
一个例子:
// Create NSData
NSString* myString = @"Lorem ipsum dolor sit amet, consectetur cras amet.";
NSData* myData = [myString dataUsingEncoding:NSUTF8StringEncoding];
if (myData != nil && myData.length > 20) {
// Create trimmed NSData
NSData* newData = [myData subdataWithRange:NSMakeRange(20, myData.length - 20)];
if (newData != nil) {
// Test
NSString* newString = [[NSString alloc] initWithData: newData
encoding: NSUTF8StringEncoding];
NSLog(@"%@", newString);
// -> "t amet, consectetur cras amet."
}
}
答案 1 :(得分:3)
阅读NSData
的文档,有一个方法可以让你指定一个字节范围:-getBytes:range:
。使用NSMakeRange()
设置范围。
答案 2 :(得分:2)
- (NSData *)subdataWithRange:(NSRange)range;