2018年4月28日
1.中文連接在編碼后就無法正常顯示問題修改
https://baike.baidu.com/item/%E4%BA%92%E8%81%94%E7%BD%91/199186?fr=aladdin
image.png
修改方法:只對參數(shù)進(jìn)行編碼
image.png
+ (nullable instancetype)hu_URLWithString:(NSString *)urlString{
NSString *realEncodeUrl;
NSArray *arr = [urlString componentsSeparatedByString:@"?"];
if (arr.count > 1) {
NSString *paramPart = arr[1];
//ios 9以上系統(tǒng)
if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_9_0){
paramPart = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
}else{
paramPart = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
realEncodeUrl = [NSString stringWithFormat:@"%@?%@",arr[0],paramPart];
}else{
realEncodeUrl = urlString;
}
if ([realEncodeUrl hasPrefix:@"http"]) {
return [self URLWithString:realEncodeUrl];
}else{
return nil;
}
}
2017年8月9日
1.NSString *encodedValue = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
2017年3月10日
1.本地url鏈接組裝
//法1:(推薦用公共接口管理方便)
NSString *filePath = [HsURLUtil appPathWithFileName:@“test.mp4"];
NSURL *url = [NSURL fileURLWithPath:str];
//法2:(其實(shí)本質(zhì)是一樣的)
NSString *str = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:str];
2.公共接口實(shí)現(xiàn)部分
//根據(jù)傳入文件名,返回關(guān)鍵目錄根目錄加上文件的絕對路徑 document
+ (NSString *)dataFilePathWithFileName:(NSString *)fileName WithDirType:(NSSearchPathDirectory)dirType
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(dirType, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *absolutefileName = [fileName lastPathComponent];
return [documentsDirectory stringByAppendingPathComponent:absolutefileName];
}
//根據(jù)傳入的相對路徑新蟆,返回基于全局的關(guān)鍵目錄的絕對路徑
+ (NSString *)dataFilePathWithFilePath:(NSString *)fileName WithDirType:(NSSearchPathDirectory)dirType;
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(dirType, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:fileName];
}
eg:使用
NSString *filePath = [HsURLUtil dataFilePathWithFileName:@"trade_function_config.xml.encode" WithDirType:NSDocumentDirectory];
//根據(jù)傳入文件名玉控,返回安裝目錄加上文件名的絕對路徑 app
+ (NSString *)appPathWithFileName:(NSString *)fileName
{
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
filePath = [filePath stringByDeletingLastPathComponent];
NSString *absolutefileName = [fileName lastPathComponent];
// TRACELOG([filePath stringByAppendingPathComponent:absolutefileName]);
return [filePath stringByAppendingPathComponent:absolutefileName];
}
//根據(jù)傳入的相對路徑捕发,返回基于安裝目錄的絕對路徑
+ (NSString *)appPathWithFilePath:(NSString *)filePath
{
NSString *appPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
appPath = [appPath stringByDeletingLastPathComponent];
//NSString *absolutefileName = [fileName lastPathComponent];
// TRACELOG([filePath stringByAppendingPathComponent:absolutefileName]);
return [appPath stringByAppendingPathComponent:filePath];
}
eg:使用
NSString *filePath = [HsURLUtil appPathWithFileName:@"JF-info.plist.encode"];
如果您發(fā)現(xiàn)本文對你有所幫助惕澎,如果您認(rèn)為其他人也可能受益槐瑞,請把它分享出去据过。