NSURL

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)為其他人也可能受益,請把它分享出去。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容