国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS11 下載之?dāng)帱c續(xù)傳的bug的解決方法

2019-10-21 18:43:57
字體:
供稿:網(wǎng)友

iOS11發(fā)布之后,可能很多帶有下載功能的APP都會躺槍(ps:埋怨蘋果爸爸幾秒鐘)。因為原先用來做斷點續(xù)傳的resumeData里帶上了一個新值,而這個新值的出現(xiàn),會導(dǎo)致幾次暫停操作后下載任務(wù)task讀取數(shù)據(jù)不對,而且在文件還沒下載完時就會調(diào)用下載完成時的代理方法,導(dǎo)致下載出錯。下面就來說說解決的辦法。

第一種方法:暫停時不調(diào)用[task cancelByProducingResumeData:^(NSData *resumeData){ }];而是調(diào)用suspend線程掛起的方法,可解決這個問題。

第二種方法:去除resumeData里的新值。

1:第一步:先把resumeData轉(zhuǎn)成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>/n/t"];    NSString *tailStr = [backStr substringFromIndex:rangeValue.location + rangeValue.length];    dataString = [headStr stringByAppendingString:tailStr];      }  return dataString;}

第3步:把string轉(zhuǎn)成新的resumeData。

resumeData =[string dataUsingEncoding:NSUTF8StringEncoding];

后記:第一種方法相對簡單,第二種相對有難度些。小伙伴可根據(jù)情況酌情使用。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 石林| 芮城县| 中方县| 博乐市| 弋阳县| 涡阳县| 蛟河市| 东阿县| 丹凤县| 吴桥县| 新乐市| 东乡族自治县| 德昌县| 彭山县| 青岛市| 青海省| 土默特右旗| 蛟河市| 邵东县| 金塔县| 龙南县| 浪卡子县| 邹城市| 碌曲县| 大竹县| 德庆县| 文山县| 文安县| 普定县| 那曲县| 广水市| 廊坊市| 信阳市| 彝良县| 淮北市| 隆安县| 中卫市| 离岛区| 佛冈县| 丰顺县| 宿迁市|