2011-08-23 2 views
2

4840 바이트 인 NSData 개체에서 작업 중이며 처음 20 바이트를 생략하고 나머지를 반입하려고합니다. 하위 문자열 방법은 NSData에 적용 할 수 있습니까? substringFromIndex:/substringToIndex:?substringFromIndex : NSData를 사용하여

답변

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." 
    } 
} 
+0

완전한 예제를 찾고 있지만 유용하다. – circuitry

+0

NSData * d1 = [myData subdataWithRange : NSMakeRange (0, 20)]; – circuitry

+1

@circuitry'subdataWithRange :'가 어떻게 사용될 수 있는지를 보여주는 완전한 예제를 추가했다. – ColGraff

3

NSData에 대한 설명서를 읽고, 거기에 바이트 범위를 지정할 수있는 방법이 있습니다 : -getBytes:range:. 범위를 설정하려면 NSMakeRange()을 사용하십시오. 당신은 가까운

2
- (NSData *)subdataWithRange:(NSRange)range; 
+1

위임 방법이 아니다. –