2015-12-01 60 views
16

我是一個初級開發者,我得到了一個代碼如下:stringByAddingPercentEscapesUsingEncoding在9.0中已棄用。如何執行此操作?

(NSString *)encodedStringFromObject:(id)object { 
    return [[object description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
} 

但在9.0必須使用stringByAddingPercentEncodingWithAllowedCharacters

我怎麼會調用這個代碼? 我需要幫助,謝謝!

+0

在iOS9 stringByAddingPercentEscapesUsingEncoding已被替換爲stringByAddingPercentEncodingWithAllowedCharacters: –

回答

52

如果你只想快速的例子來看一下這段代碼:

NSString * encodedString = [@"string to encode" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 

還要檢查List of predefined characters sets

如果你想解釋閱讀文檔,或至少這個話題:How to encode a URL in Swift

+0

是的,我使用您的示例 將我的代碼轉移到。 返回[[對象描述] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; 比它的工作,非常感謝你! –

+0

@JustLai如果你喜歡我的回答,請將其標記爲已接受。 – sage444

+0

un ...如何標記它..這是我第一次使用堆棧溢出, 單擊接受按鈕? –

2

你會讀兩種功能規範。然後你會發現字符被換碼序列替換的目的。從那裏你會發現允許的字符集,必須在某處記錄。

這是一個從初級更改爲正常到高級開發的重要組成部分:搞清楚你的​​代碼是應該做的,這在某處定義,然後讓它做它應該做的。

stringByAddingPercentEscapesUsingEncoding可能是反對,因爲它不知道哪些字符是允許的,有時會錯誤的結果。

3
URL = [[NSString stringWithFormat:@"%@XYZ",API_PATH]stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 
相關問題