带有URL内容的字符串?

imn*_*lly 17 ios 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"
Run Code Online (Sandbox Code Playgroud)

我很迷惑.在swift中采用以下Objective-c方法的正确方法是什么?

NSString * g_home_url = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:home_url] encoding:NSUTF8StringEncoding error:nil];
Run Code Online (Sandbox Code Playgroud)

Gui*_*gis 19

使用-initWithContentsOfURL:encoding:error:实例方法而不是+stringWithContentsOfURL:encoding:error:类便捷初始化程序.

var g_home_url = String(contentsOfURL: NSURL(string: url_string)!, encoding: NSUTF8StringEncoding, error: nil)
Run Code Online (Sandbox Code Playgroud)

我不知道类似的方便初始化器现在是否在Swift中不受支持,但它有意义,因为它们只是alloc-init样板的缩写,在Swift中不存在.


Nik*_*und 10

对于Swift 3,你必须使用String(contentsOf:encoding:).它抛出.

do {
    var content = try String(contentsOf:URL(string: "http://your-URI-here")!)
}
catch let error {
    // Error handling
}
Run Code Online (Sandbox Code Playgroud)