iOS 11 다운로드 의 정지점 전송 bug 해결 방법
첫 번 째 방법:일시 정지 시[task cancelByProducingResumeData:^(NSData*resumeData){}]를 호출 하지 않 습 니 다.suspend 스 레 드 를 연결 하 는 방법 으로 이 문 제 를 해결 할 수 있 습 니 다.
두 번 째 방법:resume Data 의 새로운 값 을 제거 합 니 다.
1:첫 번 째 단계:resumeData 를 string 으로 변환 합 니 다.
NSString *dataString =[[NSString alloc]initWithData:resumeData encoding:NSUTF8StringEncoding];
2:두 번 째 단계:안에 있 는 새 값 을 제거 합 니 다.
NSString *string =[self cleanResumeDataWithString:dataString];
-(NSString *)cleanResumeDataWithString:(NSString *)dataString {
if([dataString containsString:@"<key>NSURLSessionResumeByteRange</key>"]) {
NSRange rangeKey = [dataString rangeOfString:@"<key>NSURLSessionResumeByteRange</key>"];
NSString *headStr = [dataString substringToIndex:rangeKey.location];
NSString *backStr = [dataString substringFromIndex:rangeKey.location];
NSRange rangeValue = [backStr rangeOfString:@"</string>
\t"];
NSString *tailStr = [backStr substringFromIndex:rangeValue.location + rangeValue.length];
dataString = [headStr stringByAppendingString:tailStr];
}
return dataString;
}
STEP 3:string 을 새로운 resume Data 로 변환 합 니 다.
resumeData =[string dataUsingEncoding:NSUTF8StringEncoding];
후기:첫 번 째 방법 은 상대 적 으로 간단 하고 두 번 째 방법 은 상대 적 으로 어렵다.어린 동 료 는 상황 에 따라 참작 하여 사용 할 수 있다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.