如果我编码这样的字符串:
var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
它不会逃避斜线/.
我搜索并找到了这个Objective C代码:
NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );
Run Code Online (Sandbox Code Playgroud)
是否有更简单的方法来编码URL,如果没有,我如何在Swift中编写它?
在iOS8和之前我可以使用:
NSString *str = ...; // some URL
NSString *result = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
在iOS9中stringByAddingPercentEscapesUsingEncoding已被替换为stringByAddingPercentEncodingWithAllowedCharacters:
NSString *str = ...; // some URL
NSCharacterSet *set = ???; // where to find set for NSUTF8StringEncoding?
NSString *result = [str stringByAddingPercentEncodingWithAllowedCharacters:set];
Run Code Online (Sandbox Code Playgroud)
我的问题是:在哪里找到所需的NSCharacterSet(NSUTF8StringEncoding)以便正确更换stringByAddingPercentEscapesUsingEncoding?
我是初级开发人员,我得到了一个代码:
(NSString *)encodedStringFromObject:(id)object {
return [[object description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)
但在9.0必须使用stringByAddingPercentEncodingWithAllowedCharacters.
我怎么能转移这段代码?我需要帮助,谢谢!
对于我的一个应用程序,我想与WhatsApp联系人共享数据.我在StackOverflow上尝试了一些解决方案,但无法获得精确的解决方案.经过一些试验可以实现我想要的,所以在这里分享给任何人的未来参考.
如您所见,我收到一个JSON文件,使用SwiftyJSON解析它,并尝试返回totalTime,但它不会让我.我该怎么做呢?
func googleDuration(origin: String, destination: String) -> Int{
// do calculations origin and destiantion with google distance matrix api
let originFix = origin.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil);
let destinationFix = destination.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil);
let urlAsString = "https://maps.googleapis.com/maps/api/distancematrix/json?origins="+originFix+"&destinations="+destinationFix;
println(urlAsString);
let url = NSURL(string: urlAsString)!
let urlSession = NSURLSession.sharedSession()
let task = urlSession.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
if error != nil {
// If there is an error in the web …Run Code Online (Sandbox Code Playgroud) 我正在尝试向HTTP服务器发帖
顺便说一下这是我的代码:
func sendPostToUrl(url:String, withParams params: [String: String?] ) {
var request = NSMutableURLRequest(URL: NSURL(string: url)!)
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var err: NSError?
var bodyData = ""
for (key,value) in params{
if (value==nil){ continue }
let scapedKey = key.stringByAddingPercentEncodingWithAllowedCharacters(
.URLHostAllowedCharacterSet())!
let scapedValue = value!.stringByAddingPercentEncodingWithAllowedCharacters(
.URLHostAllowedCharacterSet())!
bodyData += "\(scapedKey)=\(scapedValue)&"
}
request.HTTPBody = bodyData.dataUsingEncoding
(NSUTF8StringEncoding, allowLossyConversion: true)
var task = session.dataTaskWithRequest(request,
completionHandler: {data, response, error -> Void in
println("Response: \(response)")
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Data: \(dataString)") …Run Code Online (Sandbox Code Playgroud) 我正在学习Swift,我不知道如何使用Swift将参数发送到服务器.在Objective-C中,我们可以使用"%@"占位符来完成此操作.但是对于Swift应该怎么做,假设我有一个需要电子邮件和密码的登录web服务.
现在我想知道的是,我将如何发送logintextfield和passwordtextfield文本到服务器,例如,
var bodyData = "email=logintextfield.text&password=passwordtextfield.text"
Run Code Online (Sandbox Code Playgroud) ios ×5
swift ×5
objective-c ×2
asynchronous ×1
deprecated ×1
encoding ×1
json ×1
nsurlsession ×1
url ×1
urlencode ×1
whatsapp ×1