我是iOS编程新手。我只是想知道
的实际例子var error: NSError?
let filesInDirectory: [String]! = fileManager.contentsOfDirectoryAtPath(tmpDir, error: &error) as? [String]
即为什么以及何时使用?
答案 0 :(得分:2)
stringByAddingPercentEscapesUsingEncoding:
非常有用。它返回一个百分比转义字符串,它是一个合法的URL字符串。
它将转换" http://www.example.com/resources?name=hello世界"到" http://www.example.com/resources?name=hello%20world"
以下是有关网址http://www.w3schools.com/tags/ref_urlencode.asp
的详细信息注意:在iOS 9中不推荐使用此方法。如果要使用UTF-8编码,可能还需要使用此方法stringByAddingPercentEncodingWithAllowedCharacters:
。
我添加了代码,以便在没有编码的情况下将url发送到服务器时显示错误。
NSString *urlString = @"http://localhost/test/test.php?name=hello world";
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:[NSURL URLWithString:urlString]
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSString* newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",newStr);
}
}] resume];
此代码返回
Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0x7f92f17989d0 {NSLocalizedDescription=unsupported URL, NSUnderlyingError=0x7f92f141b1f0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1002.)"}
所以,修复错误。我们只需要像这样编码urlString
[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]
答案 1 :(得分:1)
stringByAddingPercentEscapesUsingEncoding
会将Unicode *字符转换为转义百分比格式。
stringByReplacingPercentEscapesUsingEncoding
将执行相反的操作,将百分比转义转换为Unicode *。
*实际上不是Unicode,而是您选择的编码。