string与Url Swift的内容?
所以,在我下载最近的更新之前,下面的代码为我工作:
var g_home_url = String.stringWithContentsOfURL(NSURL(string: url_string), encoding: NSUTF8StringEncoding, error: nil) // Gives me an error: "String.Type does not have a member names stringWithContentsOfUrl"
我很困惑。 快速实现下面的objective-c方法的正确方法是什么?
NSString * g_home_url = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:home_url] encoding:NSUTF8StringEncoding error:nil];
使用-initWithContentsOfURL:encoding:error:
instance方法而不是+stringWithContentsOfURL:encoding:error:
class便捷初始值设定项。
var g_home_url = String(contentsOfURL: NSURL(string: url_string)!, encoding: NSUTF8StringEncoding, error: nil)
我不知道在Swift中,类的便利性初始值设定项现在是不受支持的,但是这样做是有道理的,因为它们只是alloc-init样板文件的简写,而这在swift中是不存在的。
对于Swift 3,你必须使用String(contentsOf:encoding:)
。 它抛出。
do { var content = try String(contentsOf:URL(string: "http://your-URI-here")!) } catch let error { // Error handling }
在这里它为我工作:(没有更多的错误参数)
var g_home_url = try! String(contentsOfURL: NSURL(string: url_string)!, encoding: NSUTF8StringEncoding)
或者如果你想处理这个错误:
do { var g_home_url = try String(contentsOfURL: NSURL(string: url_string)!, encoding: NSUTF8StringEncoding) } catch { print(error) }