|
@@ -212,6 +212,8 @@ public enum ParameterEncoding {
|
|
|
let allowedCharacterSet = NSCharacterSet.URLQueryAllowedCharacterSet().mutableCopy() as! NSMutableCharacterSet
|
|
let allowedCharacterSet = NSCharacterSet.URLQueryAllowedCharacterSet().mutableCopy() as! NSMutableCharacterSet
|
|
|
allowedCharacterSet.removeCharactersInString(generalDelimitersToEncode + subDelimitersToEncode)
|
|
allowedCharacterSet.removeCharactersInString(generalDelimitersToEncode + subDelimitersToEncode)
|
|
|
|
|
|
|
|
|
|
+ var escaped = ""
|
|
|
|
|
+
|
|
|
//==========================================================================================================
|
|
//==========================================================================================================
|
|
|
//
|
|
//
|
|
|
// Batching is required for escaping due to an internal bug in iOS 8.1 and 8.2. Encoding more than a few
|
|
// Batching is required for escaping due to an internal bug in iOS 8.1 and 8.2. Encoding more than a few
|
|
@@ -223,21 +225,23 @@ public enum ParameterEncoding {
|
|
|
//
|
|
//
|
|
|
//==========================================================================================================
|
|
//==========================================================================================================
|
|
|
|
|
|
|
|
- let batchSize = 50
|
|
|
|
|
- var index = string.startIndex
|
|
|
|
|
-
|
|
|
|
|
- var escaped = ""
|
|
|
|
|
|
|
+ if #available(iOS 8.3, OSX 10.10, *) {
|
|
|
|
|
+ escaped = string.stringByAddingPercentEncodingWithAllowedCharacters(allowedCharacterSet) ?? string
|
|
|
|
|
+ } else {
|
|
|
|
|
+ let batchSize = 50
|
|
|
|
|
+ var index = string.startIndex
|
|
|
|
|
|
|
|
- while index != string.endIndex {
|
|
|
|
|
- let startIndex = index
|
|
|
|
|
- let endIndex = index.advancedBy(batchSize, limit: string.endIndex)
|
|
|
|
|
- let range = Range(start: startIndex, end: endIndex)
|
|
|
|
|
|
|
+ while index != string.endIndex {
|
|
|
|
|
+ let startIndex = index
|
|
|
|
|
+ let endIndex = index.advancedBy(batchSize, limit: string.endIndex)
|
|
|
|
|
+ let range = Range(start: startIndex, end: endIndex)
|
|
|
|
|
|
|
|
- let substring = string.substringWithRange(range)
|
|
|
|
|
|
|
+ let substring = string.substringWithRange(range)
|
|
|
|
|
|
|
|
- escaped += substring.stringByAddingPercentEncodingWithAllowedCharacters(allowedCharacterSet) ?? substring
|
|
|
|
|
|
|
+ escaped += substring.stringByAddingPercentEncodingWithAllowedCharacters(allowedCharacterSet) ?? substring
|
|
|
|
|
|
|
|
- index = endIndex
|
|
|
|
|
|
|
+ index = endIndex
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return escaped
|
|
return escaped
|