这是我的问题;我想从URL获取一些数据,这是代码:
let internetURL = NSURL(string:"http://www.example.org")
let siteURL = NSURLRequest(URL: internetURL!)
let siteData = NSURLConnection(request: siteURL, delegate: nil, startImmediately: true)
let strSiteData = NSString(data: siteData, encoding: NSUTF8StringEncoding)
当我写这个时,XCode给我以下错误:
调用中的额外参数'encoding'
在最后一行。 我该怎么办?
答案 0 :(得分:5)
你可以这样做
var data = NSMutableData()
func someMethod()
{
let internetURL = NSURL(string:"http://www.google.com")
let siteURL = NSURLRequest(URL: internetURL)
let siteData = NSURLConnection(request: siteURL, delegate: self,
startImmediately: true)
}
func connection(connection: NSURLConnection!, didReceiveData _data: NSData!)
{
self.data.appendData(_data)
}
func connectionDidFinishLoading(connection: NSURLConnection!)
{
var responseStr = NSString(data:self.data, encoding:NSUTF8StringEncoding)
}
答案 1 :(得分:0)
错误消息很糟糕。
如果在游乐场中运行它,您可以看到siteData是NSURLConnection对象。不是NSData对象。这就是为什么它不会编译。
从URL创建字符串的正确方法是:
let internetURL = NSURL(string:"http://www.example.org")
var datastring = NSString(contentsOfURL: internetURL!, usedEncoding: nil, error: nil)
正确使用NSURLConnection
很复杂,因为它是一个低级API,只有在你做一些不寻常的事情时才能使用它。正确使用它需要您理解TCP / IP堆栈并与之交互。